Italia
Foro

Checkboxabfrage nur bei Veränderungen

 

GDL
Ciao,
ich möchte gerne mein aktuelles Projekt schneller machen und dabei potuto mir sehr geholfen sein wenn ich die ständigen Überprüfungsmethoden bei der Checkbox weg hätte.Das è,( die Abfragemethode mit getfocus(checkbox&) geht nicht ,da hier immer reagiert wird),es müsste irgendwas zum Abfragen geben was nur auf eine Cambiamento 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(...) per Listboxen, vielleicht weiss einer von Euch ob es per Checkboxen sowas auch gibt.Danke.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
15.11.2006  
 



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.
 
15.11.2006  
 




GDL
Hallo iF

eigentlich schon.Jetzt habe ich mir schon so oft mit solchen kleinen Umwegen geholfen nur diesmal sah Io l' Wurm nicht.Naja schlechter Tag heute.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
15.11.2006  
 




Jörg
Sellmeyer
Warum nimmst Du nicht GetCheck()?

Ich weiß nicht wie Deine Schleife aussieht aber so potrebbe 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
Nico Madysa
15.11.2006  
 




GDL
Ciao,

jede Auswahlbox von 30 hat 256 Einträge, die sich auch ändern können.Darum möchte ich nur jede Box bei einer Cambiamento 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
 
Windows7 Xprofan 8,9,10 [...]  [...] 
16.11.2006  
 




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
 
Windows7 Xprofan 8,9,10 [...]  [...] 
16.11.2006  
 




Jörg
Sellmeyer
Hallo Georg,
Dachte ichs mir doch!
Das funktioniert, hat aber den Nachteil, daß wmcommand als UserMessage deklariert sein muß.
KompilierenMarkierenSeparieren
UserMessages $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
Def ChoiceBoxSelChange(1) If(Equ(%message,$0111),And(Equ(&lparam,&(1)),Equ(Div&(&wparam,$10000),1)),0)

und ohne UserMessages $0111 funktioniert leider nicht. Vielleicht kannst Du trotzdem was damit anfangen oder jemand anders weiß weiter.

Saluto
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
 
Windows7 Xprofan 8,9,10 [...]  [...] 
16.11.2006  
 




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:
KompilierenMarkierenSeparieren
Def 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  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.233 Views

Untitledvor 0 min.
RudiB.03.04.2020
Juergen Baier29.01.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie