Cascading Combo Boxes

  • Hallo,

    hat jemand ein Beispiel für Cascading Combos für mich?
    z.b.
    combo1 wird Deutschland gwählt dann erscheint in Combo2 München- Berlin - Hannover usw...
    combo1 wird Belgien gewählt dann erscheint in Combo2 Antwerpen - Brüssel usw...

    vielen Dank

    Franz

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

    Einmal editiert, zuletzt von franzp (17. April 2009 um 13:26)

  • Hier:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ComboConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    Global Const $COMBO_BELGIEN = "Antwerpen|Brüssel|Brügge|Gent"
    Global Const $COMBO_DEUTSCHLAND = "Berlin|Bremen|Dresden|Düsseldorf|Erfurt|Hamburg|Hannover|Kiel|Magdeburg|Mainz|München|Potsdam|Saarbrücken|Schwerin|Stuttgart|Wiesbaden"

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

    Local $msg
    GUICreate("My GUI combo") ; will create a dialog box that when displayed is centered

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

    Global $Combo1 = GUICtrlCreateCombo("", 10, 10,100,20, BitOR($CBS_AUTOHSCROLL, $WS_VSCROLL, $CBS_DROPDOWNLIST)) ; create first item
    GUICtrlSetData(-1, "Belgien|Deutschland|England") ; add other item snd set a new default
    Global $Combo2 = GUICtrlCreateCombo("",10,50,100,20, BitOR($CBS_AUTOHSCROLL, $WS_VSCROLL, $CBS_DROPDOWNLIST))


    GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
    GUISetState()

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func MY_WM_COMMAND($hWnd, $uMsg, $wParam, $lParam)
    Local $nID = BitAND($wParam,0xFFFF)
    Local $nNotify = BitShift($wParam,16)
    Switch $nNotify
    Case $CBN_SELENDOK
    Switch $nID
    Case $Combo1
    Switch GUICtrlRead($Combo1)
    Case "Deutschland"
    GUICtrlSetData($Combo2, "|" & $COMBO_DEUTSCHLAND)
    Case "Belgien"
    GUICtrlSetData($Combo2, "|" & $COMBO_BELGIEN)
    Case Else
    GUICtrlSetData($Combo2, "|-") ; Liste kürzen
    GUICtrlSetData($Combo2, "") ; Leeren
    EndSwitch
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • vielen Dank ! sehr schön. Da wäre ich einfach nicht draufgekommen ;(

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---