Seite 1 von 1

Textfeld sperren

Verfasst: So, 27.09.2009 15:05
von gigabert
Hallo,

ich möchte mit der Auswahl einer Checkbox mehrere Textfelder sperren (sichtbar ausgegraut, keine Eingabe möglich). Mit "Enabled" wird zwar das Textfeld gesperrt und es kann kein Text mehr eingegeben werden, aber der visuelle Zustand des Eingabefeldes ändert sich nicht. Nur der bisher eingegebene Text wird grau. Ich möchte aber, dass nachdem ein Häkchen in der Checkbox gesetzt wurde, sichtbar die Sperrung der Textfelder geschieht, also die Hintergrundfarbe des Textfeldes grau wird. Muss ich das so selbst programmieren, also die Hintergrundfarbe ändern, oder gibt es dafür einen einfachen Basic-Befehl, der das Feld sperrt und ausgraut?

Bisher habe ich das so:

Code: Alles auswählen

...
if oChkAuszahlung.state = 1 then
		oForm.getByName("txt_Kontonummer").Enabled = false
		oForm.getByName("txt_BLZ").Enabled = false
		oForm.getByName("lb_Bankinstitute").Enabled = false
end if
...
Gruss
Bert

Re: Textfeld sperren

Verfasst: So, 27.09.2009 16:06
von keksi1970
Hi

Ich glaube

oForm.getByName("txt_Kontonummer").model.backgroundcolor = RGB ( 128, 128, 128 )
oForm.getByName("txt_BLZ").model.backgroundcolor = RGB ( 128, 128, 128 )
oForm.getByName("lb_Bankinstitute").model.backgroundcolor = RGB ( 128, 128, 128 )
sollte genuegen, um die Felder sichtbar Grau zu machen.

eine Methode, gleichzeitig Farbe und Sperrung zu änern ist mir nicht bekannt

LG
Andreas

Re: Textfeld sperren

Verfasst: So, 27.09.2009 16:14
von gigabert
Hallo,

so ähnlich habe ich es jetzt auch gemacht:

Code: Alles auswählen

...
nColorDisable = RGB(220, 220, 220)
nColorEnable = RGB(255, 255, 255)

if oChkAuszahlung.state = 0 then
		oFormPerson.getByName("txt_Kontonummer").Enabled = true
		oFormPerson.getByName("txt_Kontonummer").BackgroundColor = nColorEnable
		oFormBank.getByName("txt_BLZ").Enabled = true
		oFormBank.getByName("txt_BLZ").BackgroundColor = nColorEnable
		oFormBank.getByName("lb_Bankinstitute").Enabled = true
		oFormBank.getByName("lb_Bankinstitute").BackgroundColor = nColorEnable
	end if

	if oChkAuszahlung.state = 1 then
		oFormPerson.getByName("txt_Kontonummer").Enabled = false
		oFormPerson.getByName("txt_Kontonummer").BackgroundColor = nColorDisable
		oFormBank.getByName("txt_BLZ").Enabled = false
		oFormBank.getByName("txt_BLZ").BackgroundColor = nColorDisable
		oFormBank.getByName("lb_Bankinstitute").Enabled = false
		oFormBank.getByName("lb_Bankinstitute").BackgroundColor = nColorDisable
end if
...
Das mit dem "model" klappt nicht, wahrscheinlich weil es auf die View angewendet werden muss. Ich hab das zwar schon bei Java mit dem MVC mühevoll lernen müssen, aber hier bei OOo und Basic verstehe ich das noch nicht so ganz, bzw. es erscheint mir etwas anders und komplizierter.

Gruss
Bert