Zeichenobjekt löschen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Zeichenobjekt löschen

Beitrag von erikafuchs »

Hallo Leute,
kann mir jemand sagen, wie ich den Befehl formulieren muss um ein Zeichenobjekt zu entfernen. Wenn ich zB. ein Rechteck zeichne mit:

Code: Alles auswählen

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.
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Re: Zeichenobjekt löschen

Beitrag von ykcim »

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.

Code: Alles auswählen

 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.
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Zeichenobjekt löschen

Beitrag von erikafuchs »

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
Antworten