Schältflächen aus Dokument entfernen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Schältflächen aus Dokument entfernen

Re: Schältflächen aus Dokument entfernen

von turtle47 » So, 03.10.2010 15:36

Hallo,
DPunch hat geschrieben:Ein Bild (genauer gesagt ein TextGraphicObject) hat die Methode .getControl mangels des Interfaces XControlShape nicht
Das verrät einem xray ganz schnell wenn man solch eine Fehlermeldung bekommt:
clag hat geschrieben:"Eigenschaft oder Methode nicht gefunden "
und dann in der Schleife die Objekte mit xray untersucht. :wink:

Jürgen

Re: Schältflächen aus Dokument entfernen

von clag » So, 03.10.2010 15:29

Hallo DPunch,

so erklärt, wird das Verhalten direkt vorhersehbar
und Danke für den Code der das gleich ausbügelt :)

Re: Schältflächen aus Dokument entfernen

von DPunch » So, 03.10.2010 15:10

Aloha
clag hat geschrieben:Ist ein Bild im Dokument eingefügt gibt es die Fehlermeldung " Eigenschaft oder Methode nicht gefunden "
(...)kann mir bitte jemand sagen was da schiefläuft und vor allem wie man den Fehler vermeidet
Ein Bild (genauer gesagt ein TextGraphicObject) hat die Methode .getControl mangels des Interfaces XControlShape nicht, daher die Fehlermeldung.
Du brauchst aber lediglich eine Abfrage, ob das Element den Service ControlShape unterstützt oder nicht. Tut es dies, steht die Methode .getControl auf jeden Fall zur Verfügung.

Code: Alles auswählen

	For n = oDrawpage.Count-1 To 0 Step -1
		oThisShape = oDrawpage.getByIndex(n)
		If oThisShape.supportsService("com.sun.star.drawing.ControlShape") Then '<---------------
			If NOT isNull(oThisShape.Control) Then ' < Fehlermeldung Eigenschaft oder Methode nicht gefunden
				sControlName = oThisShape.Control.Name
				If IndexInArray(sControlName,aControlElementsToRemove) > -1 Then
					oDrawpage.remove(oThisShape)
				End If
			End If
		End If
	Next n

Re: Schältflächen aus Dokument entfernen

von clag » So, 03.10.2010 14:37

Hi Karo

das "dispose" scheint etwas forscher vorzugehen oder ?
mal sehen ob ich damit weiter komme

Danke

Re: Schältflächen aus Dokument entfernen

von Karolus » So, 03.10.2010 13:42

Hallo
Für die Drawpage(s) gibts .dispose() probiers mal damit.

Code: Alles auswählen

...
while thiscomponent.drawpage.hasElements
thiscomponent.drawpage.getbyindex(0).dispose
wend
...
oder so ähnlich (ungetestet)
Gruß Karo

Schältflächen aus Dokument entfernen

von clag » So, 03.10.2010 09:48

Hallo Kenner und Könner,

aus einem Dokument sollen Buttons/Schaltflächen entfernt werden, ich versuche es mit Code von DPunch den er hier einmal gezeigt hatte,
der funktioniert auch soweit, aber leider nur solange wie keine Bilder in dem Dokument vorhanden sind !

Ist ein Bild im Dokument eingefügt gibt es die Fehlermeldung " Eigenschaft oder Methode nicht gefunden "

Code: Alles auswählen

Globalscope.BasicLibraries.loadLibrary("Tools")
'oDoc = StarDesktop.loadComponentFromURL(dateiurl, , 0, Array() )
'oDoc.lockcontrollers
	oDrawPage = oDoc.DrawPage
	oForm = oDrawPage.Forms.getByIndex(0)

	aControlElementsToRemove = Array("Schaltfläche 1","Schaltfläche 2","Schaltfläche 3",_
	"Schaltfläche 4","Schaltfläche 5","Schaltfläche 6","Schaltfläche 7",_
	"Schaltfläche 8","Schaltfläche 9")

	For i = 0 To UBound(aControlElementsToRemove)
	sControlName = aControlElementsToRemove(i)
		If oForm.hasByName(sControlName) then
		oForm.removeByName(sControlName)
		End If
	Next i

	For n = oDrawpage.Count-1 To 0 Step -1
		oThisShape = oDrawpage.getByIndex(n)

		If NOT isNull(oThisShape.Control) Then ' < Fehlermeldung Eigenschaft oder Methode nicht gefunden

		sControlName = oThisShape.Control.Name
			If IndexInArray(sControlName,aControlElementsToRemove) > -1 Then
			oDrawpage.remove(oThisShape)
			End If
		End If
	Next n
kann mir bitte jemand sagen was da schiefläuft und vor allem wie man den Fehler vermeidet

Danke für's lesen und ggf auch für's drüber nachdenken :)

Nach oben