Input-Feld deaktivieren wenn Combo1 gewählt

  • Hallo,

    ich habe ein Problem und möchte euch das mal an Hand dieses Beispielcodes erläutern:

    [autoit]

    #include <GUIConstants.au3>
    $Form1 = GUICreate("Auswahl", 625, 443, 556, 260)
    $Label1 = GUICtrlCreateLabel("Firma", 192, 72, 36, 17)
    $Combo1 = GUICtrlCreateCombo("", 232, 72, 265, 25)
    GUICtrlSetData($Combo1, 'Firma1')
    GUICtrlSetData($Combo1, 'Firma2')
    $Label2 = GUICtrlCreateLabel("e-mail", 192, 104, 36, 17)
    $Input1 = GUICtrlCreateInput("ausgrauen wenn Firma1 oder nichts ausgewählt", 232, 104, 273, 21)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Ich stell mich, glaub ich, einfach zu blöd an...
    Ich möchte, dass mir "Input1" (e-mail) ausgegraut wird, wenn ich in der Comboauswahl "Firma1" oder nichts auswähle.
    Nur wenn in der Comboauswahl "Firma2" ausgewählt wird, soll das Feld aktiv geschaltet werden.

    Bin für jegliche Hilfe dankbar :)

    Einmal editiert, zuletzt von Fuschio (20. Juli 2012 um 12:10)

    • Offizieller Beitrag

    Einfach nur freigeben, wenn 'Firma2' gewählt wurde:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $Form1 = GUICreate("Auswahl", 625, 443, 556, 260)
    $Label1 = GUICtrlCreateLabel("Firma", 192, 72, 36, 17)
    $Combo1 = GUICtrlCreateCombo("", 232, 72, 265, 25)
    GUICtrlSetData($Combo1, 'Firma1|Firma2')
    $Label2 = GUICtrlCreateLabel("e-mail", 192, 104, 36, 17)
    $Input1 = GUICtrlCreateInput("ausgrauen wenn Firma1 oder nichts ausgewählt", 232, 104, 273, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Combo1
    If GUICtrlRead($Combo1) <> 'Firma2' Then
    GUICtrlSetState($Input1, $GUI_DISABLE)
    Else
    GUICtrlSetState($Input1, $GUI_ENABLE)
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Hallo Fuschio,


    Probiere es doch mal mit dem Auslesen der ComboBox und automatischem Ändern der GuiCtrlSetState-Anweisung des Inputfeldes.

    [autoit]


    #include <GUIConstants.au3>
    Global $strCombo1, $strCombo1_old
    $Form1 = GUICreate("Auswahl", 625, 443, 556, 260)
    $Label1 = GUICtrlCreateLabel("Firma", 192, 72, 36, 17)
    $Combo1 = GUICtrlCreateCombo("", 232, 72, 265, 25)
    GUICtrlSetData($Combo1, 'Firma1')
    GUICtrlSetData($Combo1, 'Firma2')
    $Label2 = GUICtrlCreateLabel("e-mail", 192, 104, 36, 17)
    $Input1 = GUICtrlCreateInput("ausgrauen wenn Firma1 oder nichts ausgewählt", 232, 104, 273, 21)
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    $strCombo1 = GUICtrlRead($Combo1)
    If $strCombo1 <> $strCombo1_old Then
    If (GUICtrlRead($Combo1) = "" or GUICtrlRead($Combo1) = 'Firma1') Then
    GUICtrlSetState($Input1, $GUI_DISABLE)
    Else
    GUICtrlSetState($Input1, $GUI_ENABLE)
    EndIf
    EndIf
    $strCombo1_old = GUICtrlRead($Combo1)
    WEnd

    [/autoit]

    Wenn denn alles so einfach wäre wie

    [autoit]

    "Autoit"

    [/autoit]

    meine UDFs
    Math2

    Wichtige Threads
    Math2