XbpCheckbox:selection := .T. -> EVAL(o:selected)

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

XbpCheckbox:selection := .T. -> EVAL(o:selected)

Beitrag von AUGE_OHR »

hi,

man kann ja vorwählen ob eine Checkbox markiert ist oder nicht.
bei einem klick auf eine Checkbox ändert sich Zustand UND der Codeblock Slot o:selected wird evaluiert.

Problem :
bei o:selection := .T. , was vor den o:Create steht, wird der Codeblock Slot nicht ausgeführt...
mit o:SetData(.T./.F.) ändere ich ja Programm technisch den Zustand aber ich muss manuelle ein EVAL(o:selected) durchführen...

für mich erscheint es unlogisch das keine Reaktion von dem XbPart erfolgt wenn der Zustand vom Programm geändert wurde, oder übersehe ich da was ?
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: XbpCheckbox:selection := .T. -> EVAL(o:selected)

Beitrag von Werner_Bayern »

Servus Jimmy,

verstehe Deine Frage nicht ganz. Wenn Du setdata(.t.) setzt, wird der editBuffer der Checkbox gesetzt und :editBuffer() liefert .t..

Selected wird grundsätzlich nur ausgeführt, wenn die Checkbox den Eingabefocus erhält - also selected wird - und dadurch sich ja gleichzeitig der Zustand ändert (aus .t. wird .f., aus .f. wird .t.).

Ich finde das Verhalten korrekt, dass durch setData() nicht auch gleich der selected-Codeblock feuert.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: XbpCheckbox:selection := .T. -> EVAL(o:selected)

Beitrag von AUGE_OHR »

Werner_Bayern hat geschrieben:Wenn Du setdata(.t.) setzt, wird der editBuffer der Checkbox gesetzt und :editBuffer() liefert .t..
aha ... den o:editbuffer hab ich vergessen ...

ok ... dann so : i
ich setze o:selection := .T. / .F. -> ergibt sich zur Laufzeit

Frage : wie bekomme ich eine "Aktion" hin welche das selbe Ergebnis wie mit klick ergibt ?

in diesem Fall soll die Hintergrundfarbe, vor dem ersten Aufruf, die entsprechenden Farben haben.
Checkbox_Color_Background.JPG
Checkbox_Color_Background.JPG (4.51 KiB) 3096 mal betrachtet
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: XbpCheckbox:selection := .T. -> EVAL(o:selected)

Beitrag von Werner_Bayern »

Code: Alles auswählen

o:setdata(.not. o:editBuffer())
eval(o:selected(lWert))
setinputFocus(o)
ohne getestet zu haben :wink:
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: XbpCheckbox:selection := .T. -> EVAL(o:selected)

Beitrag von AUGE_OHR »

hi,
Werner_Bayern hat geschrieben:

Code: Alles auswählen

o:setdata(.not. o:editBuffer())
eval(o:selected(lWert))
setinputFocus(o)
hm ... ja das wird wohl funktionieren ... aber es ist (noch) nicht das was ich mir vorgestellt habe.

hm ... vielleicht sollte ich eine eigene Class xyz FROM XbpCheckbox() schreiben wo ich mein eigenes o:SetData() einbaue ... oder gleich als "Pushlike" Button.

warum das ganz : ich finde das man eine Checkbox, besonders bei hoher Bildschirm Auflösung, nicht gut erkennen kann ob gesetzt oder nicht.
gruss by OHR
Jimmy
Antworten