Auslesen eines GUI-Inputs

  • `Nabend.

    Ich habe hier ein sehr simples Problem, komme jedoch trotz mehrfachen draufgucken leider nicht auf die Lösung. Daher erbitte ich eure Hilfe. Problem ist, dass $IUser und $IPass nicht ausgelesen werden. Bei $CServer hingegen klappt es. Wäre für eine Korrektur dankbar.

    MfG Nils

  • Wie alpines schon sagte. Man muss sich halt überlegen "Wann möchte ich den Input auslesen?". So wie du es jetzt hast, wird er beim Start genau einmal ausgelesen (und da steht ja noch nichts drin). So könnte z.B. das ganze aussehen:

    Spoiler anzeigen
    [autoit]


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

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

    GuiCreate("AirlineSim Service Tool",400,400)
    GuiSetState(@sw_show)

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

    GUICtrlCreateLabel("Server auswählen: ",20,20)
    GUICtrlCreateLabel("Username: ",20,45,75)
    GUICtrlCreateLabel("Password: ",20,70,75)

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

    $BExit = GUICtrlCreateButton("Schließen",340,370)
    $CServer = GUICtrlCreateCombo("Serverliste",120,20,150)
    $DServer = GUICtrlSetData($CServer,"Tempelhof|Gatow|Devau")
    $IUser = GUICtrlCreateInput("",120,45,150)
    $IPass = GUICtrlCreateInput("",120,70,150)

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

    While 1
    $GMsg = GuiGetMsg()
    Switch $GMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_EVENT_MINIMIZE
    GuiSetState(@SW_Minimize)
    Case $BExit
    $RCombo1 = GUICtrlRead($CServer)
    $RUser = GUICtrlRead($IUser)
    $RPass = GUICtrlRead($IPass)
    Msgbox(16,"Server: "&$RCombo1,$RUser&" <--User & Pass --> "&$RPass)
    Exit
    EndSwitch

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

    WEnd

    [/autoit]

    aber bei ComboBoxen habe ich mir angewöhnt, die Combovariable($RCombo1) direkt zu ändern, statt abzufragen(das mit Inputs zu realisieren ist nicht so einfach).
    Erfordert aber, dass die Variable vorher deklariert wurde(Local/Global/...).
    Das könnte dann so aussehen:

    Spoiler anzeigen
    [autoit]

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

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

    GuiCreate("AirlineSim Service Tool",400,400)
    GuiSetState(@sw_show)

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

    GUICtrlCreateLabel("Server auswählen: ",20,20)
    GUICtrlCreateLabel("Username: ",20,45,75)
    GUICtrlCreateLabel("Password: ",20,70,75)

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

    $BExit = GUICtrlCreateButton("Schließen",340,370)
    $CServer = GUICtrlCreateCombo("Serverliste",120,20,150)
    $DServer = GUICtrlSetData($CServer,"Tempelhof|Gatow|Devau")
    $IUser = GUICtrlCreateInput("",120,45,150)
    $IPass = GUICtrlCreateInput("",120,70,150)
    Local $RCombo1

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

    While 1
    $GMsg = GuiGetMsg()
    Switch $GMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_EVENT_MINIMIZE
    GuiSetState(@SW_Minimize)
    Case $CServer
    $RCombo1 = GUICtrlRead($CServer)
    Case $BExit
    $RUser = GUICtrlRead($IUser)
    $RPass = GUICtrlRead($IPass)
    Msgbox(16,"Server: "&$RCombo1,$RUser&" <--User & Pass --> "&$RPass)
    Exit
    EndSwitch

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

    WEnd

    [/autoit]