| |
|
|
GDL | Hallo, ich möchte gerne mein aktuelles Projekt schneller machen und dabei könnte mir sehr geholfen sein wenn ich die ständigen Überprüfungsmethoden bei der Checkbox weg hätte.Das heißt,( die Abfragemethode mit getfocus(checkbox&) geht nicht ,da hier immer reagiert wird),es müsste irgendwas zum Abfragen geben was nur auf eine Änderung in der Checkbox reagiert.
if getfocus(checkbox&) alt%=val(gettext$(checkbox&)) neu%=val(gettext$(checkbox&)) casenot alt%=neu%:ausfuehren endif
Dieser Teil geht leider auch nicht, da getfocus immer die Schleife(auch schon nach einem auf den Pfeil nach unten drücken) neu startet und daher in alt% und neu% immer dasselbe steht.
In prfellow gab es ein sbl_changed(...) für Listboxen, vielleicht weiss einer von Euch ob es für Checkboxen sowas auch gibt.Danke.
Servus Georg |
|
|
| |
|
|
|
| Sagen wir mal so
if getfocus(checkbox&) alt%=val(gettext$(checkbox&)) neu%=val(gettext$(checkbox&)) casenot alt%=neu%:ausfuehren endif
müsste auch eigendlich
if getfocus(checkbox&) alt%=neu% neu%=val(gettext$(checkbox&)) casenot alt%=neu%:ausfuehren endif
heissen. |
|
|
| |
|
|
|
GDL | Hallo iF
eigentlich schon.Jetzt habe ich mir schon so oft mit solchen kleinen Umwegen geholfen nur diesmal sah ich den Wurm nicht.Naja schlechter Tag heute.
Servus Georg |
|
|
| |
|
|
|
Jörg Sellmeyer | Warum nimmst Du nicht GetCheck()?
Ich weiß nicht wie Deine Schleife aussieht aber so dürfte die Abfragelast relativ klein sein: KompilierenMarkierenSeparieren |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 15.11.2006 ▲ |
|
|
|
|
Nico Madysa | Gehts nicht um CheckBoxen? Da müsste es doch eher so heißen. KompilierenMarkierenSeparieren Das was Jörg geschrieben hat, ist eher für RadioButtons, oder? |
|
|
| |
|
|
|
GDL | Hallo,
jede Auswahlbox von 30 hat 256 Einträge, die sich auch ändern können.Darum möchte ich nur jede Box bei einer Änderung mit gettext abfragen. Da aber die Box mit getfocus auch schon beim Pfeil nach unten anklicken(um nachzusehen welche neuen Werte hinzukamen) reagiert, der Umweg mit alt% und neu%.Ansonsten würde auch bei gleicher Auswahl ständig das Unterprogramm aufgerufen.
Servus Georg |
|
|
| |
|
|
|
Jörg Sellmeyer | Kann es sein, daß Du Choiceboxen meinst? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 16.11.2006 ▲ |
|
|
|
|
GDL | Hallo Jörg,
ich meine diese hier reset&[1]=create(choicebox,%hwnd,1,10,190,50,400)
Ich hab ne dunkle Vorahnung, dass ich da was durcheinanderbrachte.
Servus Georg |
|
|
| |
|
|
|
Jörg Sellmeyer | Hallo Georg, Dachte ichs mir doch! Das funktioniert, hat aber den Nachteil, daß wmcommand als UserMessage deklariert sein muß. KompilierenMarkierenSeparierenUserMessages $0111 wm_commad
Def ChoiceBoxSelChange(1) If(Equ(%umessage,$0111),And(Equ(&ulparam,&(1)),Equ(Div&(&uwparam,$10000),1)),0)
Cls
Declare ChoiceBox&,ende%
Decimals 0
ChoiceBox&=CreateChoiceBox(%hwnd,,10,10,100,400)
WhileLoop 5
AddString Test + Str$(&Loop)
Wend
MoveListToChoice(ChoiceBox&)
WhileNot ende%
WaitInput
If %key=2
ende%=1
ElseIf ChoiceBoxSelChange(ChoiceBox&)
WindowTitle GetText$(ChoiceBox&)
EndIf
Wend
Das Ganze nur mit: KompilierenMarkierenSeparieren und ohne UserMessages $0111 funktioniert leider nicht. Vielleicht kannst Du trotzdem was damit anfangen oder jemand anders weiß weiter.
Gruß Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 16.11.2006 ▲ |
|
|
|
|
GDL | Hallo Jörg,
habe es schon verwenden können,danke. Nur diese Zeile verstehe ich überhaupt nicht
Def ChoiceBoxSelChange(1) If(Equ(%message,$0111),And(Equ(&lparam,&(1)),Equ(Div&(&wparam,$10000),1)),0)
Vielleicht könntest du, wenn du magst, das mir ein bisschen erklären.
Servus Georg |
|
|
| |
|
|
|
Jörg Sellmeyer | Die Zeile ist eigentlich die Gleiche, wie die im Codeteil oben mit dem Unterschied, daß ich die UserMessage-Werte durch normale Messages ersetzt habe, in der Hoffnung, diese würden von Profan ebenfalls ausgewertet. Konkret bedeutet die Zeile, daß die entsprechende Message (CBN_SELCHANGE) nicht direkt an das Programm übermittelt wird. Dafür wird wmcommand (hier darum als UserMessage deklariert) an das Programm gesendet und in ulparam ist das Handle des Fensterelementes (die Choicebox). Im Lowword von uwparam steht dann die entsprechende Nachricht. Die ist in diesem Fall 1. Das ist nämlich der Wert von CBN_SELCHANGE. Mit wmcommand als UserMessage funktioniert es auch. Ich habe aber keine Ahnung, warum es nicht funktioniert wenn man es so verwendet: KompilierenMarkierenSeparierenDef ChoiceBoxSelChange(1) If(Equ(%message,$0111),And(Equ(&lparam,&(1)),Equ(Div&(&wparam,$10000),1)),0)
Cls
Declare ChoiceBox&,ende%
Decimals 0
ChoiceBox&=CreateChoiceBox(%hwnd,,10,10,100,400)
WhileLoop 5
AddString Test + Str$(&Loop)
Wend
MoveListToChoice(ChoiceBox&)
WhileNot ende%
WaitInput
If %key=2
ende%=1
ElseIf ChoiceBoxSelChange(ChoiceBox&)
WindowTitle GetText$(ChoiceBox&)
EndIf
Wend
Vielleicht weiß jemand Anderes da mehr... |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 16.11.2006 ▲ |
|
|
|