Funktion aufrufen wenn Combofeld verlassen wird

  • Hallo zusammen

    gibt es vielleicht eine Function welche bei Änderung des Wertes eines ComboFeld aufgerufen werden kann..

    Ich habe ein Beispiel erstellt.

    [autoit]

    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    Dim $form_main = GUICreate("Beispiel Formular",250,250)
    Dim $combo_1 = GUICtrlCreateCombo("",10,50,100,20,$CBS_DROPDOWNLIST)
    GUICtrlSetData(-1,"Entry 1|Entry 2|Entry 3","Entry 1")
    Dim $bttn_exit = GUICtrlCreateButton("Exit",180,200,60,30)

    [/autoit][autoit][/autoit][autoit]

    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nmsg = GUIGetMsg()
    Select

    [/autoit][autoit][/autoit][autoit]

    ;hier soll geprüft werden ob sich der Wert vom Combofeld verändert hat, und anschliessend soll eine Funktion aufgerufen werden....

    [/autoit][autoit][/autoit][autoit]

    Case $nmsg = -3 or $nmsg = $bttn_exit
    Exit
    EndSelect
    WEnd

    [/autoit]

    MfG
    johny1099

    Einmal editiert, zuletzt von johny1099 (20. April 2014 um 19:19)

  • Spoiler anzeigen
    [autoit]

    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    Dim $form_main = GUICreate("Beispiel Formular",250,250)
    Dim $combo_1 = GUICtrlCreateCombo("",10,50,100,20,$CBS_DROPDOWNLIST)
    GUICtrlSetData(-1,"Entry 1|Entry 2|Entry 3","Entry 1")
    Dim $bttn_exit = GUICtrlCreateButton("Exit",180,200,60,30)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nmsg = GUIGetMsg()
    Switch $nmsg

    [/autoit] [autoit][/autoit] [autoit]

    Case $combo_1
    _Funktion()
    ;hier soll geprüft werden ob sich der Wert vom Combofeld verändert hat, und anschliessend soll eine Funktion aufgerufen werden....

    [/autoit] [autoit][/autoit] [autoit]

    Case -3, $bttn_exit
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Funktion()
    ConsoleWrite("Combo-Control geändert!" & @LF)
    EndFunc

    [/autoit]
  • Hallo funkey

    vielen Dank für die schnelle Beantwortung meiner Frage. Es funktioniert genau so wie ich es benötige.

    Soll ich in Zukunt immer Switch anstatt Select verwenden. Oder wo genau liegt der Unterschied ??

    MfG
    johny1099

  • Soll ich in Zukunt immer Switch anstatt Select verwenden. Oder wo genau liegt der Unterschied ??


    Kommt draufan. In den meisten Fällen ist Switch von Vorteil.

    Der Unterschied ist der, bei Select musst du immer den kompletten Ausdruck schreiben, z.B. Case $msg = -3. Bei Switch musst du dann nur Case -3 schreiben. Switch vergleicht immer mit der Value die bei Case steht, Select wertet den Ausdruck bei Case aus.
    Hier noch ein kurzes Beispiel zum besseren Verständis:

    [autoit]

    $i = 42
    ; $i = 12

    [/autoit][autoit][/autoit][autoit]

    Switch $i
    Case 42
    MsgBox(0, '', '$i = 42')
    Case 12
    MsgBox(0, '', '$i = 12')
    EndSwitch

    [/autoit][autoit][/autoit][autoit]

    Select
    Case $i = 42
    MsgBox(0, '', '$i = 42')
    Case $i = 12
    MsgBox(0, '', '$i = 12')
    EndSelect

    [/autoit]

    Switch verwendet man also eher wenn man eine Variable mit verschiedenen Werten vergleichen will/muss und Select bei mehreren/verschiedenen Variablen.

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski