Seite 1 von 1

getState() bei CheckBox

Verfasst: Di, 22.01.2013 14:03
von Jonny1
Ich habe in einem Writer-Blatt eine CheckBox eingebaut und ihr folgendes Makro zugewiesen:

Code: Alles auswählen

sub ProbeCheckBox
	ThisComponent.DrawPage.Forms.getByIndex(0).GetByName("Check Box 1").Label = "getState() !"
	a = ThisComponent.DrawPage.Forms.getByIndex(0).GetByName("Check Box 1").GetState()
end sub
Während die erste Zeile funktioniert und den Label ändert, meldet die zweite Zeile: "Property or Method not found: GetState"

Was mache ich falsch?

Wo finde ich eine gute Beschreibung von "getState()" & Co.?

Re: getState() bei CheckBox

Verfasst: Di, 22.01.2013 14:31
von Jonny1
Es funktioniert mit "state" an der Stelle von "getState":

Code: Alles auswählen

sub ProbeCheckBox
	ThisComponent.DrawPage.Forms.getByIndex(0).GetByName("Check Box 1").Label = "getState() !"
	print ThisComponent.DrawPage.Forms.getByIndex(0).GetByName("Check Box 1").State
end sub
Dennoch can ich das Problem noch nicht als endgültig gelöst betrachten, da ich immer noch nicht finden kann, wo ich eine klare Beschreibung von "state" und "getState" finden kann.

Re: getState() bei CheckBox

Verfasst: Di, 22.01.2013 14:47
von Karolus
Hallo
Dennoch can ich das Problem noch nicht als endgültig gelöst betrachten, da ich immer noch nicht finden kann, wo ich eine klare Beschreibung von "state" und "getState" finden kann.
Dann benutze mri und installiere am besten gleich noch das SDK dazu ( findest du über die Downloadseite von AOO/LO )

Re: getState() bei CheckBox

Verfasst: Di, 22.01.2013 14:50
von Jonny1
Vielen Dank. Werde ich machen.

Re: getState() bei CheckBox

Verfasst: Di, 22.01.2013 20:11
von Jonny1
Ich habe MRI installiert, komme aber damit bis jetzt nicht klar.

Mehr habe ich dadurch herausfinden können, daß ich die Variable:

neu = ThisComponent.DrawPage.Forms.getByIndex(0).GetByName("Check Box 1")

gebildet habe und dann, beim laufendem Makro, mir die Namen der Komponenten des Objektes im Watch-Fenster angeschaut habe.

Die Zahlen zu finden, die den verschiedenen Hintergrundsfarben entsprechen, war ebenfalls zeitraubend.

Gibt es nicht ein Handbuch, in dem alle Komponenten-Namen und die ihnen zuzuweisenden Werte aufgelistet sind?

"Useful Macro Information" und "OpenOffice.org-Makros Erklärt" von Andrew Pitonyak habe ich. Aber dort konnte ich nichts von dem finden, was ich benötigte.

Die Situation erinnert mich an einer kleinen Stadt in einem osteuropäischen Land, in dem man vergeblich ein Haus sucht, wenn man sich dort nicht auskennt, denn dort haben nicht alle Strassen einen Namen und nicht alle Häuser eine Hausnummer.

Für diejenigen, die an der Verwendung des Checkboxes interessiert sind, schreibe ich hier unten das Makro, das ich nach stundenlangem Suchen zusammenbasteln konnte:

Code: Alles auswählen

sub ProbeCheckBox
	LightRed = 16711680
	Green5 = 44544
	a = ThisComponent.DrawPage.Forms.getByIndex(0).GetByName("Check Box 1").State
	if a then 
		b = "registered"
		c = "Click here to unregister the page."
		d = Green5
	else 
		b = "unregistered"
		c = "Click here to register the page."
		d = LightRed
	end if
	ThisComponent.DrawPage.Forms.getByIndex(0).GetByName("Check Box 1").Label = b
	ThisComponent.DrawPage.Forms.getByIndex(0).GetByName("Check Box 1").helptext = c
	ThisComponent.DrawPage.Forms.getByIndex(0).GetByName("Check Box 1").backgroundcolor = d
end sub

Re: getState() bei CheckBox

Verfasst: Di, 22.01.2013 20:29
von juetho
Teilantworten gibt es im Basic Guide, allerdings nur für Eigenschaften, nicht für Methoden. (Es gibt auch eine deutsche Version, aber den Link habe ich irgendwann verloren.)

Außerdem liefert die API-Referenz (jedenfalls im Prinzip) alle Informationen. Bei Xray wird der jeweilige Typ genannt; ich vermute, dass MRI das auch macht. Dadurch findest du relativ schnell die Seite mit dem betreffenden Interface und dort die Beschreibungen; sofern erforderlich, gibt es Links auf benötigte Basiswerte. Und so weiter...

Viel Erfolg! Jürgen

Re: getState() bei CheckBox

Verfasst: Di, 22.01.2013 22:37
von balu
Hallo
Die Zahlen zu finden, die den verschiedenen Hintergrundsfarben entsprechen, war ebenfalls zeitraubend.
Zumindest in dieser Hinsicht kann ich dir etwas anbieten, das dir zukünftig etwas Arbeit abnimmt. Schau mal in diesen Thread rein, da hatte ich eine Beispieldatei angehängt die die 99 Standardfarben von OOo 3.2.1 plus eine Sonderfarbe enthällt. Im Makro Modul *FarbListe* sind sie mit ihrem Hexadezimalwerten und ihren deutschen Farbnamen aufgelistet. Und außerdem gibt es dort noch eine 2 Farbpalette, die etwas dunklere Farben hat.

Schau dir die Datei an. Vielleicht kannst Du sie ja gebrauchen.



Gruß
balu

Re: getState() bei CheckBox

Verfasst: Di, 22.01.2013 22:40
von Jonny1
Ich danke euch vielmals. Ich werde mir alles genau durchlesen.