Vonalak
A StarOffice a com.sun.star.drawing.LineShape szolgáltatást biztosítja a vonalobjektumokhoz. A vonalobjektumok támogatják az összes általános formázási szolgáltatást, kivéve a területekre vonatkozókat. A LineShape szolgáltatáson keresztül a következő tulajdonságok érhetők el:
Vonaltulajdonságok - com.sun.star.drawing.LineProperties
Szövegtulajdonságok - com.sun.star.drawing.Text (a com.sun.star.style.CharacterProperties és a com.sun.star.style.ParagraphProperties szolgáltatással)
Árnyéktulajdonságok - com.sun.star.drawing.ShadowProperties
A következő példa létrehoz és formáz egy vonalat a fent említett tulajdonságok használatával. A vonal kezdőpontját a Location tulajdonság határozza meg, míg a Size tulajdonságban megadott koordináták meghatározzák a vonal végét.
Dim Doc As Object
Dim Page As Object
Dim LineShape 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)
LineShape = Doc.createInstance("com.sun.star.drawing.LineShape")
LineShape.Size = Size
LineShape.Position = Point
Page.add(LineShape)
|
Polipoligon-alakzatok
A StarOffice támogatja az összetett poligonális alakzatokat a com.sun.star.drawing.PolyPolygonShape szolgáltatáson keresztül. Szigorúan véve a polipoligon nem egyetlen poligon, hanem több. Több független, sarokpontokat tartalmazó lista megadható és kombinálható, amelyek együtt egy teljes objektumot alkotnak.
Ahogy a négyszögalakzatoknál is, úgy a polipoligonoknál is a rajzobjektumok összes tulajdonsága rendelkezésre áll.
Kitöltési tulajdonságok - com.sun.star.drawing.FillProperties
Vonaltulajdonságok - com.sun.star.drawing.LineProperties
Szövegtulajdonságok - com.sun.star.drawing.Text (a com.sun.star.style.CharacterProperties és a com.sun.star.style.ParagraphProperties szolgáltatással)
Árnyéktulajdonságok - com.sun.star.drawing.ShadowProperties
A PolyPolygonShape szolgáltatás rendelkezik egy tulajdonsággal, amellyel megadhatók egy poligon koordinátái:
A következő példa bemutatja, hogyan hozható létre egy háromszög a PolyPolygonShape szolgáltatással.
Dim Doc As Object
Dim Page As Object
Dim PolyPolygonShape As Object
Dim PolyPolygon As Variant
Dim Coordinates(2) As New com.sun.star.awt.Point
Doc = StarDesktop.CurrentComponent
Page = Doc.drawPages(0)
PolyPolygonShape = Doc.createInstance("com.sun.star.drawing.PolyPolygonShape")
Page.add(PolyPolygonShape) ' A Page.add metódusnak meg kell előznie a koordináták beállítását.
Coordinates(0).x = 1000
Coordinates(1).x = 7500
Coordinates(2).x = 10000
Coordinates(0).y = 1000
Coordinates(1).y = 7500
Coordinates(2).y = 5000
PolyPolygonShape.PolyPolygon = Array(Coordinates())
|
Mivel a poligon pontjai abszolút értékek, nem kell megadnunk a poligon méretét vagy kezdőpontját. Ehelyett, létre kell hozni egy tömböt a pontokból, beágyazni ezt a tömböt egy másik tömbbe (az Array(koordináták)() függvénnyel), majd ezt a tömböt hozzárendelni a poligonhoz. A függvényhívás előtt a poligont be kell szúrni a dokumentumba.
A dupla pontosságú tömbbel lehetővé válik, hogy összetett alakzatokat hozzunk létre több poligon összevonásából. Például létrehozhatunk egy négyszöget, majd beszúrhatunk egy másik négyszöget annak belsejébe, és létrehozhatunk egy lyukat az eredeti négyszögben:
Dim Doc As Object
Dim Page As Object
Dim PolyPolygonShape As Object
Dim PolyPolygon As Variant
Dim Square1(3) As New com.sun.star.awt.Point
Dim Square2(3) As New com.sun.star.awt.Point
Dim Square3(3) As New com.sun.star.awt.Point
Doc = StarDesktop.CurrentComponent
Page = Doc.drawPages(0)
PolyPolygonShape = Doc.createInstance("com.sun.star.drawing.PolyPolygonShape")
Page.add(PolyPolygonShape) ' A Page.add metódusnak meg kell előznie a koordináták beállítását.
Square1(0).x = 5000
Square1(1).x = 10000
Square1(2).x = 10000
Square1(3).x = 5000
Square1(0).y = 5000
Square1(1).y = 5000
Square1(2).y = 10000
Square1(3).y = 10000
Square2(0).x = 6500
Square2(1).x = 8500
Square2(2).x = 8500
Square2(3).x = 6500
Square2(0).y = 6500
Square2(1).y = 6500
Square2(2).y = 8500
Square2(3).y = 8500
Square3(0).x = 6500
Square3(1).x = 8500
Square3(2).x = 8500
Square3(3).x = 6500
Square3(0).y = 9000
Square3(1).y = 9000
Square3(2).y = 9500
Square3(3).y = 9500
PolyPolygonShape.PolyPolygon = Array(Square1(), Square2(), Square3())
|
|