Swtich problem

  • [autoit]


    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Strategiks WaR", 440, 403, -1, -1)
    $Label1 = GUICtrlCreateLabel("Strategis War", 112, 0, 161, 33)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Holzfäller", 4, 88, 80, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("Gebäude", 64, 48, 90, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Lehmhütte", 4, 120, 90, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("Eisenbergwerk", 4, 152, 122, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label6 = GUICtrlCreateLabel("Einheiten", 304, 48, 93, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Einheiten = GUICtrlCreateCombo("Einheiten:", 300, 88, 125, 25)
    GUICtrlSetData(-1, "Legionäre|Bogenschützen|Axtwerfer|Rammböcke|Katapulte")
    $HolzStufeAusbau = GUICtrlCreateLabel("Ausbau Stufe 1", 144, 88, 107, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label7 = GUICtrlCreateLabel("Stadt", 72, 192, 50, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Label8 = GUICtrlCreateLabel("Anzahl: ", 300, 120, 98, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $AnzahlLegionar = 100
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Einheiten
    Switch GUICtrlRead($Einheiten)
    Case 1
    MsgBox (0, "", "")
    Case 2
    MsgBox (0, "", "")

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

    EndSwitch

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

    EndSwitch
    WEnd

    [/autoit]

    Habe hier IRGENDWIE ein Problem mit Switch ;(
    Sagt nichts zu den sachen dort, das is ein little projekt :D

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Mit Case musst du das abfragen, was in der ComboBox steht.
    Bei dir wäre das z.B:
    Case "Legionäre" anstatt Case 1

  • vermutlich so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Strategiks WaR", 440, 403, -1, -1)
    $Label1 = GUICtrlCreateLabel("Strategis War", 112, 0, 161, 33)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Holzfäller", 4, 88, 80, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("Gebäude", 64, 48, 90, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Lehmhütte", 4, 120, 90, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("Eisenbergwerk", 4, 152, 122, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label6 = GUICtrlCreateLabel("Einheiten", 304, 48, 93, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Einheiten = GUICtrlCreateCombo("Einheiten:", 300, 88, 125, 25)
    GUICtrlSetData(-1, "Legionäre|Bogenschützen|Axtwerfer|Rammböcke|Katapulte")
    $HolzStufeAusbau = GUICtrlCreateLabel("Ausbau Stufe 1", 144, 88, 107, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label7 = GUICtrlCreateLabel("Stadt", 72, 192, 50, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Label8 = GUICtrlCreateLabel("Anzahl: ", 300, 120, 98, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $AnzahlLegionar = 100
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Einheiten
    Switch GUICtrlRead($Einheiten)
    Case "Legionäre"
    MsgBox (0, "", "1")
    Case "Bogenschützen"
    MsgBox (0, "", "2")
    Case "Axtwerfer"
    MsgBox (0, "", "3")
    Case "Rammböcke"
    MsgBox (0, "", "4")
    Case "Katapulte"
    MsgBox (0, "", "5")

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

    EndSwitch

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

    EndSwitch
    WEnd

    [/autoit]
  • So?

    Spoiler anzeigen
    [autoit]

    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Strategiks WaR", 440, 403, -1, -1)
    $Label1 = GUICtrlCreateLabel("Strategis War", 112, 0, 161, 33)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Holzfäller", 4, 88, 80, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("Gebäude", 64, 48, 90, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Lehmhütte", 4, 120, 90, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("Eisenbergwerk", 4, 152, 122, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label6 = GUICtrlCreateLabel("Einheiten", 304, 48, 93, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Einheiten = GUICtrlCreateCombo("Einheiten:", 300, 88, 125, 25)
    GUICtrlSetData(-1, "Legionäre|Bogenschützen|Axtwerfer|Rammböcke|Katapulte")
    $HolzStufeAusbau = GUICtrlCreateLabel("Ausbau Stufe 1", 144, 88, 107, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label7 = GUICtrlCreateLabel("Stadt", 72, 192, 50, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Label8 = GUICtrlCreateLabel("Anzahl: ", 300, 120, 98, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $AnzahlLegionar = 100
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Einheiten
    Switch GUICtrlRead($Einheiten)
    Case "Legionäre"
    MsgBox (0, "", "")
    Case "Bogenschützen"
    MsgBox (0, "", "")
    Case "Axtwerfer"
    MsgBox (0, "", "")
    Case "Rammböcke"
    MsgBox (0, "", "")
    Case "Katapulte"
    MsgBox (0, "", "")
    EndSwitch

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

    EndSwitch
    WEnd

    [/autoit]

    €: Zu langsam ._.

    • Offizieller Beitrag

    Wenn du mit dem Index der Combo switchen willst, geht das so:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiComboBox.au3>
    #region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Strategiks WaR", 440, 403, -1, -1)
    $Label1 = GUICtrlCreateLabel("Strategis War", 112, 0, 161, 33)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Holzfäller", 4, 88, 80, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("Gebäude", 64, 48, 90, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Lehmhütte", 4, 120, 90, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("Eisenbergwerk", 4, 152, 122, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label6 = GUICtrlCreateLabel("Einheiten", 304, 48, 93, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Einheiten = GUICtrlCreateCombo("Einheiten:", 300, 88, 125, 25)
    GUICtrlSetData(-1, "Legionäre|Bogenschützen|Axtwerfer|Rammböcke|Katapulte")
    $HolzStufeAusbau = GUICtrlCreateLabel("Ausbau Stufe 1", 144, 88, 107, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label7 = GUICtrlCreateLabel("Stadt", 72, 192, 50, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Label8 = GUICtrlCreateLabel("Anzahl: ", 300, 120, 98, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###
    $AnzahlLegionar = 100
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Einheiten
    Switch _GUICtrlComboBox_GetCurSel($Einheiten)
    Case 1
    MsgBox(0, "Legionär", "1")
    Case 2
    MsgBox(0, "Bogenschütze", "2")
    Case 3
    MsgBox(0, "Axtwerfer", "3")
    Case 4
    MsgBox(0, "Ramböcke", "4")
    Case 5
    MsgBox(0, "Katapulte", "5")
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]