Makro: Felder unsichtbar machen

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: Makro: Felder unsichtbar machen

Re: Makro: Felder unsichtbar machen

von DPunch » Fr, 30.05.2014 16:02

Servus

Tausch mal die Zeile

Code: Alles auswählen

oForm = oDoc.drawpage.forms(0)
gegen

Code: Alles auswählen

oForm = oDoc.drawpage.forms.getByName("Segment")

Re: Makro: Felder unsichtbar machen

von pony_slaystation » Fr, 30.05.2014 14:54

Danke dir.
deine Lösung sieht schlanker aus, aber wenn ich sie einbaue, erhalte ich (egal was ich mache) eine NoSuchElement Exception. Die Namen der Felder stimmen aber, das hab ich überprüft.

Re: Makro: Felder unsichtbar machen

von DPunch » Do, 29.05.2014 16:20

Servus

Die richtige Anweisung lautet

Code: Alles auswählen

if oFeld1aus.isVisible = true THEN
.Visible ist nur der Setter (setVisible).

Wenn Du sowieso immer nur zwischen sichtbar und unsichtbar hin- und herschalten willst, ohne weitere Bedingungen, kannst Du das Ganze übrigens auch einfach so abkürzen:

Code: Alles auswählen

oDoc = ThisComponent
oView = oDoc.getCurrentController()
oForm = oDoc.drawpage.forms(0)
oFeld1 = oForm.getByName("segmenterl_txt")
oFeld2 = oForm.getByName("segmenterl_feld")
oControl = oDoc.getCurrentController()
oFeld1aus = oControl.getcontrol(oFeld1)
oFeld2aus = oControl.getcontrol(oFeld2)
oFeld1aus.Visible = NOT oFeld1aus.isVisible
oFeld2aus.Visible = NOT oFeld2aus.isVisible

Makro: Felder unsichtbar machen

von pony_slaystation » Do, 29.05.2014 15:59

Hallo Leute,
ich habe keine Erfahrung mit OO Basic oder dem Schreiben von Makros und möchte den EInstieg mit einem einfachen Beispiel machen. Per Druck auf eine Schaltfläche sollen einige Textfelder samt Beschreibungen ein- oder ausgeblendet werden; je nach dem, ob sie gerade sichtbar sind oder nicht. ALso: Druck auf Makro-Button (rift Makro auf): Makro prüft, ob die Schaltfläche gerade sichbar ist oder nicht. Ist sie sichtbar, setzt es die Schaltfläche auf unsichtbar. Andernfalls setzt sie sie auf sichtbar. Ich kriege es hin, eine Schaltfläche damit unsichtbar zu machen, aber nicht wieder zurück; sprich: nur ohne die if-Anweisung.
Im vorliegenden Fall erhalte ich die Meldung: "Datentypen unverträglich" in der if---then Zeile.

Code: Alles auswählen

REM  *****  BASIC  *****

Sub ein_ausblenden
oDoc = ThisComponent
oView = oDoc.getCurrentController()
oForm = oDoc.drawpage.forms.getByName("Segment")
oFeld1 = oForm.getByName("segmenterl_txt")
oFeld2 = oForm.getByName("segmenterl_feld")
oControl = oDoc.getCurrentController()
oFeld1aus = oControl.getcontrol(oFeld1)
if oFeld1aus.Visible = true THEN
	oFeld1aus.Visible = false
	oControl = oDoc.getCurrentController()
	oFeld2aus = oControl.getcontrol(oFeld2)
	oFeld2aus.Visible = false
	ELSE
	oFeld1aus.Visible = true
	oControl = oDoc.getCurrentController()
	oFeld2aus = oControl.getcontrol(oFeld2)
	oFeld2aus.Visible = true
end if	
end sub

Nach oben