Hallo zusammen,
ich möchte gerne in einer Maske ein SLE-Feld sperren, wenn eine Checkbox aktiviert wurde. Leider funkt. das nicht so.
Hier mein Code-auszug.
Die Checkbox:
oXbp := XbpCheckBox():new( drawingArea,, {20,280}, {100,20} )
oXbp:caption :=aFelder[2][1]
oXbp:tabStop := .T.
oXbp:create()
oXbp:selected := ;
{| mp1, mp2, oChk| IIf( oChk:getData(), Pruefen(.t.,oSle1,aFelder,drawingArea), Pruefen(.f.,oSle1,aFelder,drawingArea) ) }
Das SLE-Feld:
oSle1 := XbpSLE():new( drawingArea, , {300,280}, {100,20}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oSle1:tabStop := .T.
oSle1:dataLink := {|x| IIf( x==NIL, aFelder[3][2], aFelder[3][2] := x ) }
oSle1:bufferLength:=9
oSle1:create()
oSle1:SetData()
oSle1:killInputFocus:={ |x,y,oSLE| oSLE:getData() }
Hier die Function prufen:
Function Pruefen(lSetz,oSle1,aFelder,drawingArea)
aFelder[2][2]:=lSetz
If lSetz=.t.
oSle1:editable:=(.f.)
EndIf
Return Nil
Auch oSle1 als Rückgabe aus Pruefen() brachte nicht das gewünschte Ergebenis. Das Feld kann weiterhin editiert werden.
Habe ich irgendwo etwas übersehen ? Die Hilfe von Alaske ist dabei auch nicht hilfreich.
SLE-Feld sperren
Moderator: Moderatoren
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Call by reference?
Code: Alles auswählen
Pruefen(.t.,[color=red]@[/color]oSle1,aFelder,drawingArea)
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hi,
du möchtest ein Feld SPERREN, also disablen() oder nur ReadOnly setzen, das wäre SetEditable(.t./.f.) ...
zu dem Unterschied habe ich vor einiger Zeit was geschrieben. Einfach danach suchen wenn du mehr wissen möchtest.
In deinem Beispiel setzt du die Instanzvariable editable, diese wird aber nur während der Konfiguration (also CREATE oder CONFIGURE) ausgewertet. In deinem Fall ist die Methode :disable() und später :enable() bestimmt das was du möchtest.
du möchtest ein Feld SPERREN, also disablen() oder nur ReadOnly setzen, das wäre SetEditable(.t./.f.) ...
zu dem Unterschied habe ich vor einiger Zeit was geschrieben. Einfach danach suchen wenn du mehr wissen möchtest.
In deinem Beispiel setzt du die Instanzvariable editable, diese wird aber nur während der Konfiguration (also CREATE oder CONFIGURE) ausgewertet. In deinem Fall ist die Methode :disable() und später :enable() bestimmt das was du möchtest.
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten: