Sub RechteckErstellen
dim oDoc as Object, oPage as Object, oRechteck as object
oDoc=ThisComponent
oPage=oDoc.drawPages(0)
dim oPos as new com.sun.star.awt.Point
oPos.X=12000
oPos.Y=7000
dim oSize as New com.sun.star.awt.Size
oSize.width=4000
osize.height=2000
oRechteck=oDoc.createInstance("com.sun.star.drawing.RectangleShape")
with oRechteck
.Position=oPos
.Size=oSize
.Name="Rechteck"
end with
oPage.add(oRechteck)
end sub
Kann ich dann das Rechteck irgenwie mit "oPage.removeByName("Rechteck") oder so entfernen?
Ebenso müsste ich auch die Maßlinie "Masslinie1" entfernen.
Grüße
Pit
... da fällt mir ein: Einfacher wäre es, wenn ich einfach alle Objekte auf der drawpage löschen könnte.
Eine RemoveByName oder auch ein getbyname geht nicht.
Man muß eine Schleife über die Grafikobjekte machen und den Namen prüfen oder alle in der Schleife löschen.
oPage=odoc.drawpages(0)
for i=opage.count-1 to 0 Step -1
oGrafik=opage.getbyindex(i)
' Entweder prüfen
if oGrafik.name="XXXX" then
opage.remove(oGrafik)
end if
'oder immer löschen
' opage.remove(oGrafik)
next
Blöderweise schmiert die Funktion bei mir unter 3.0.1 Windows ab. Mit 2.4 geht es.
mfg
Michael
Zuletzt geändert von ykcim am Mi, 18.03.2009 12:25, insgesamt 1-mal geändert.
Lieber Michael,
vielen Dank erstmal für deine Hilfe. Da ich diese Routine in ein Programm einbauen möchte, dass hunderte von Schülern mit verschiedenen oO Versionen nutzen, wäre das jetzt allerdings schlecht wenn nur die geringste Gefahr von Programmabstürzen besteht. Wir schreiben sogar Mathetests mit dem Programm. Dann suche ich vielleicht doch nach einer Möglichkeit die gesamte Drawpage oder alle Elemente auf einmal zu entfernen. Hat dazu jemand eine Idee? Vielleicht ist ja die Information hilfreich, dass ich die Routine innerhalb eines CalcTabellenblattes nutzen will.
Grüße
Pit