Rajzobjektumok szerkesztése
- A rajzok felépítése
- Rajzobjektumok szerkesztése
- Bemutatók
Objektumok csoportosítása
Sokszor előfordul, hogy hasznos az egyes rajzobjektumokat csoportosítani, amelyek így egyetlen nagy objektumként viselkednek.
A következő példa két rajzobjektumot von össze:
Dim Doc As Object Dim Page As Object Dim Square As Object Dim Circle As Object Dim Shapes As Object Dim Group As Object Dim Point As New com.sun.star.awt.Point Dim Size As New com.sun.star.awt.Size Dim NewPos As New com.sun.star.awt.Point Dim Height As Long Dim Width As Long Doc = StarDesktop.CurrentComponent Page = Doc.drawPages(0) Point.x = 3000 Point.y = 3000 Size.Width = 3000 Size.Height = 3000 ' négyszög-rajzelem létrehozása Square = Doc.createInstance("com.sun.star.drawing.RectangleShape") Square.Size = Size Square.Position = Point Square.FillColor = RGB(255,128,128) Page.add(Square) ' kör-rajzelem létrehozása Circle = Doc.createInstance("com.sun.star.drawing.EllipseShape") Circle.Size = Size Circle.Position = Point Circle.FillColor = RGB(255,128,128) Circle.FillColor = RGB(0,255,0) Page.add(Circle) ' a kör és a négyszög kombinálása Shapes = createUnoService("com.sun.star.drawing.ShapeCollection") Shapes.add(Square) Shapes.add(Circle) Group = Page.group(Shapes) ' kombinált rajzelemek középre helyezése Height = Page.Height Width = Page.Width NewPos.X = Width / 2 NewPos.Y = Height / 2 Height = Group.Size.Height Width = Group.Size.Width NewPos.X = NewPos.X - Width / 2 NewPos.Y = NewPos.Y - Height / 2 Group.Position = NewPos
Ez a program létrehoz egy négyszöget és egy kört, majd beszúrja őket egy oldalra. Ezután létrehoz egy objektumot, amely támogatja a com.sun.star.drawing.ShapeCollection szolgáltatást, és az Add metódussal hozzáadja a négyszöget és kört ehhez az objektumhoz. A ShapeCollection objektumot hozzáadja az oldalhoz a Group metódussal, és visszaadja a Group objektumot, amely önálló Shape objektumként szerkeszthető.
Ha a csoport egyes tagjait akarjuk formázni, akkor formázzuk őket, mielőtt a csoporthoz adnánk őket. Az objektumok nem módosíthatók, ha már a csoport tagjai.
Rajzobjektumok forgatása és döntése
Az előző részekben leírt összes rajzobjektum forgatható és dönthető a com.sun.star.drawing.RotationDescriptor szolgáltatás használatával.
A szolgáltatás a következő tulajdonságokkal rendelkezik:
- RotateAngle (hosszú egész)
- forgatás szöge századfokban.
- ShearAngle (hosszú egész)
- döntés szöge századfokban.
A következő példa létrehoz egy négyszöget, és elforgatja 30 fokban a RotateAngle tulajdonsággal:
Dim Doc As Object Dim Page As Object Dim RectangleShape As Object Dim Point As New com.sun.star.awt.Point Dim Size As New com.sun.star.awt.Size Point.x = 1000 Point.y = 1000 Size.Width = 10000 Size.Height = 10000 Doc = StarDesktop.CurrentComponent Page = Doc.drawPages(0) RectangleShape = Doc.createInstance("com.sun.star.drawing.RectangleShape") RectangleShape.Size = Size RectangleShape.Position = Point RectangleShape.RotateAngle = 3000 Page.add(RectangleShape)
A következő példa ugyanazt a négyszöget hozza létre, mint az előző példa, de most 30 százalékkal eldönti a ShearAngle tulajdonsággal.
Dim Doc As Object Dim Page As Object Dim RectangleShape As Object Dim Point As New com.sun.star.awt.Point Dim Size As New com.sun.star.awt.Size Point.x = 1000 Point.y = 1000 Size.Width = 10000 Size.Height = 10000 Doc = StarDesktop.CurrentComponent Page = Doc.drawPages(0) RectangleShape = Doc.createInstance("com.sun.star.drawing.RectangleShape") RectangleShape.Size = Size RectangleShape.Position = Point RectangleShape.ShearAngle = 3000 Page.add(RectangleShape)
Keresés és csere
Ahogy a szöveges dokumentumokban is, úgy a rajzobjektumokban is lehet keresni és cserélni. Ez a funkció hasonló a szöveges dokumentumoknál a Szöveges dokumentumok című fejezetben leírthoz. Viszont a rajzobjektumoknál a kereséshez használt leíróobjektum nem közvetlenül a dokumentumobjektumon keresztül van létrehozva, hanem a hozzá tartozó karakterszinten keresztül. A következő példa bemutatja a cserefolyamatot egy rajzban:
Dim Doc As Object Dim Page As Object Dim ReplaceDescriptor As Object Dim I As Integer Doc = StarDesktop.CurrentComponent Page = Doc.drawPages(0) ReplaceDescriptor = Page.createReplaceDescriptor() ReplaceDescriptor.SearchString = "kutya" ReplaceDescriptor.ReplaceString = "macska" For I = 0 to Doc.drawPages.Count - 1 Page = Doc.drawPages(I) Page.ReplaceAll(ReplaceDescriptor) Next I
A program először a dokumentum DrawPage objektumával létrehoz egy ReplaceDescriptor objektumot, majd ezt a leírót alkalmazza egy ciklusban a rajzdokumentum összes oldalára.
Content on this page is licensed under the Public Documentation License (PDL). |