getState() bei CheckBox

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

Moderator: Moderatoren

Jonny1
***
Beiträge: 55
Registriert: Mi, 12.01.2011 21:49

getState() bei CheckBox

Beitrag 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.?
Jonny1
***
Beiträge: 55
Registriert: Mi, 12.01.2011 21:49

Re: getState() bei CheckBox

Beitrag 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.
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: getState() bei CheckBox

Beitrag 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 )
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Jonny1
***
Beiträge: 55
Registriert: Mi, 12.01.2011 21:49

Re: getState() bei CheckBox

Beitrag von Jonny1 »

Vielen Dank. Werde ich machen.
Jonny1
***
Beiträge: 55
Registriert: Mi, 12.01.2011 21:49

Re: getState() bei CheckBox

Beitrag 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
juetho
******
Beiträge: 617
Registriert: Di, 20.04.2010 15:46
Wohnort: Berlin

Re: getState() bei CheckBox

Beitrag 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
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: getState() bei CheckBox

Beitrag 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
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Jonny1
***
Beiträge: 55
Registriert: Mi, 12.01.2011 21:49

Re: getState() bei CheckBox

Beitrag von Jonny1 »

Ich danke euch vielmals. Ich werde mir alles genau durchlesen.
Antworten