SLE-Feld sperren

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

SLE-Feld sperren

Beitrag von Rolf Ramacher »

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.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
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:

Beitrag von Tom »

Call by reference?

Code: Alles auswählen

Pruefen(.t.,[color=red]@[/color]oSle1,aFelder,drawingArea)
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hallo Hubert,

danke für den Tipp. Funktioniert.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Antworten