von Toxitom » Mo, 23.01.2006 15:43
Hey Michael,
und damit das nicht alles so "theoretisch" bleibt, hier mal ein praktisches Beispiel:
Zeichne mal in ein neues Draw-Dokument (2.0) ein geschlossenes Polygon - nutze das Werkzeug "geschlossenes, gefülltes Polygon".
Die Seite darf nur ein "Shape" enthalten! dann rufe das Makro auf - die jeweiligen Koordinaten der Eckpunkte werden aufgelistet:
Code: Alles auswählen
Sub PunkteAuflisten
oDoc = thisComponent
oPage = oDoc.drawPages(0)
oShape = oPage.getByIndex(0)
aArray1 = oShape.PolyPolygon
aPunkte = aArray1(0)
for i=0 to Ubound(aPunkte)
oPunkt = aPunkte(i)
s = s & i &": X = " & oPunkt.X & "; Y = " & oPunkt.Y & chr(13)
next
msgbox s
End Sub
Na ja, die Hauptschwierigkeit besteht in der Identifikation des gewünschten Shapes - bei nur einem ist das einfach, aber alles ist intern ein "Shape", und die werden einfach intern durchnummeriert. Du kannst sie also nur über eine "Enumeration" erreichen - und musst sie mühevoll identifizieren.
Gruss
Thomas
Hey Michael,
und damit das nicht alles so "theoretisch" bleibt, hier mal ein praktisches Beispiel:
Zeichne mal in ein neues Draw-Dokument (2.0) ein geschlossenes Polygon - nutze das Werkzeug "geschlossenes, gefülltes Polygon".
Die Seite darf nur ein "Shape" enthalten! dann rufe das Makro auf - die jeweiligen Koordinaten der Eckpunkte werden aufgelistet:
[code]Sub PunkteAuflisten
oDoc = thisComponent
oPage = oDoc.drawPages(0)
oShape = oPage.getByIndex(0)
aArray1 = oShape.PolyPolygon
aPunkte = aArray1(0)
for i=0 to Ubound(aPunkte)
oPunkt = aPunkte(i)
s = s & i &": X = " & oPunkt.X & "; Y = " & oPunkt.Y & chr(13)
next
msgbox s
End Sub[/code]
Na ja, die Hauptschwierigkeit besteht in der Identifikation des gewünschten Shapes - bei nur einem ist das einfach, aber alles ist intern ein "Shape", und die werden einfach intern durchnummeriert. Du kannst sie also nur über eine "Enumeration" erreichen - und musst sie mühevoll identifizieren.
Gruss
Thomas