Rajzobjektumok szerkesztése
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:
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)
|
|