Checkboxenabfrage - Ausgabe in Edit

  • Servous,

    hab noch ein Problem, und zwar:
    Ich kann ich abfragen welche Checkboxen gedrückt/geklickt sind und die dann im der Edit ausgeben?
    Sprich das dann wenn die erste und dritte Checkbox geklickt wurde in der Edit steht: ""Es ist Checkbox 1" und "Es ist Checkbox 3""


    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $Form1 = GUICreate("Form1", 355, 345, 192, 124)
    $Checkbox1 = GUICtrlCreateCheckbox("Hier steht was 1", 16, 16, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Hier steht was 2", 128, 16, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Hier steht was 3", 240, 16, 97, 17)
    $Edit1 = GUICtrlCreateEdit("", 16, 40, 321, 257)
    $Button1 = GUICtrlCreateButton("Button1", 88, 312, 171, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

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

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

    EndSwitch
    WEnd

    [/autoit]

    Es gibt keine blöde Fragen, es gibt nur blöde antworten !

    Einmal editiert, zuletzt von myrix (14. August 2010 um 17:56)

  • Ugefähr so?

    Spoiler anzeigen
    [autoit]

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

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

    Global $Checkbox[4]

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

    $Form1 = GUICreate("Form1", 355, 345, 192, 124)
    $Checkbox[1] = GUICtrlCreateCheckbox("Hier steht was 1", 16, 16, 97, 17)
    $Checkbox[2] = GUICtrlCreateCheckbox("Hier steht was 2", 128, 16, 97, 17)
    $Checkbox[3] = GUICtrlCreateCheckbox("Hier steht was 3", 240, 16, 97, 17)
    $Edit1 = GUICtrlCreateEdit("", 16, 40, 321, 257)
    $Button1 = GUICtrlCreateButton("Button1", 88, 312, 171, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    For $i=1 to 3 Step +1
    If BitAND(GUICtrlRead($Checkbox[$i]),$GUI_CHECKED) = $GUI_CHECKED Then
    GUICtrlSetData($Edit1,GUICtrlRead($Edit1)&@CRLF&"Hier steht was "&$i)
    EndIf
    Next
    $i=1
    EndSwitch
    WEnd

    [/autoit]

    is ein bisschen umgeschreiben dass es nich ganz so viel schreib arbeit is

  • Das kannst du so machen

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Add_Constants=n
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $Form1 = GUICreate("Form1", 355, 345, 192, 124)
    $Checkbox1 = GUICtrlCreateCheckbox("Hier steht was 1", 16, 16, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Hier steht was 2", 128, 16, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Hier steht was 3", 240, 16, 97, 17)
    $Edit1 = GUICtrlCreateEdit("", 16, 40, 321, 257)
    $Button1 = GUICtrlCreateButton("Button1", 88, 312, 171, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $sData = ""
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then $sData &= "1. Checkbox ist angeCHECKED" & @CRLF
    If BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) = $GUI_CHECKED Then $sData &= "2. Checkbox ist angeCHECKED" & @CRLF
    If BitAND(GUICtrlRead($Checkbox3), $GUI_CHECKED) = $GUI_CHECKED Then $sData &= "3. Checkbox ist angeCHECKED" & @CRLF
    GUICtrlSetData($Edit1, $sData)
    EndSwitch
    WEnd

    [/autoit]

    mfg (Auto)Bert

  • Hallo Myrix,

    die Idee von @misteryo, die ID's der Checkboxen in Arrays zu speichern ist hervorragend, dies spart vor allem bei vielen Checkboxen Tipparbeit. Deshalb hier meine abgeänderte Version:

    Spoiler anzeigen
    [autoit]

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

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

    Global $Checkbox[4]
    $Form1 = GUICreate("Form1", 355, 345, 192, 124)
    $Checkbox[0] = GUICtrlCreateCheckbox("Hier steht was 1", 16, 16, 97, 17)
    $Checkbox[1] = GUICtrlCreateCheckbox("Hier steht was 2", 128, 16, 97, 17)
    $Checkbox[2] = GUICtrlCreateCheckbox("Hier steht was 3", 240, 16, 97, 17)
    $Edit1 = GUICtrlCreateEdit("", 16, 40, 321, 257)
    $Button1 = GUICtrlCreateButton("Button1", 88, 312, 171, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $sData = ""
    for $i = 0 to 2
    If BitAND(GUICtrlRead($Checkbox[$i]), $GUI_CHECKED) = $GUI_CHECKED Then $sData &= $i+1 & ". Checkbox ist angeCHECKED" & @CRLF
    Next
    GUICtrlSetData($Edit1, $sData)
    EndSwitch
    WEnd

    [/autoit]

    eine Bitte noch: setze den Thread auf gelöst. Einfach 1. Beitrag bearbeiten, Präfix (nähe Überschrift) ändern und speichern (absenden)

    mfg (Auto)Bert

    mfg (Auto)Bert

  • [autoit]


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

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

    Global $aCheckbox[3]
    $Form1 = GUICreate("Form1", 355, 345, 192, 124)

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

    For $i = 0 To 2
    $aCheckbox[$i] = GUICtrlCreateCheckbox("Hier steht was " & $i + 1, 16 + $i * 112, 16, 97, 17)
    Next

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

    $Edit1 = GUICtrlCreateEdit("", 16, 40, 321, 257)
    $Button = GUICtrlCreateButton("Button", 88, 312, 171, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    $sData = ""
    For $i = 0 To 2
    If BitAND(GUICtrlRead($aCheckbox[$i]), $GUI_CHECKED) = $GUI_CHECKED Then $sData &= $i + 1 & ". Checkbox ist angeCHECKED" & @CRLF
    Next
    GUICtrlSetData($Edit1, $sData)
    EndSwitch
    WEnd

    [/autoit]


    sollte auch gehen ;)

  • Gilt misteryo Methode auch wenn bei jeder Cheackbox was völlig anderes drinne steht?

    diese Frage habei ich nicht ganz verstande, vermute aber du suchst soetwas:

    Spoiler anzeigen
    [autoit]

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

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

    Global $Checkbox[3], $sCBText[3]=["test1","2.test","noch ein test"]
    $Form1 = GUICreate("Form1", 355, 345, 192, 124)
    for $i = 0 to 2
    $Checkbox[$i] = GUICtrlCreateCheckbox($sCBText [$i], 16+$i*102, 16, 97, 17)
    Next
    #cs das gleiche ohne Array für die Texte
    $Checkbox[0] = GUICtrlCreateCheckbox("test1" [$i], 128, 16, 97, 17)
    $Checkbox[1] = GUICtrlCreateCheckbox("2. test" [$i], 128, 16, 97, 17)
    $Checkbox[2] = GUICtrlCreateCheckbox("noch ein test" [$i], 240, 16, 97, 17)
    #ce
    $Edit1 = GUICtrlCreateEdit("", 16, 40, 321, 257)
    $Button1 = GUICtrlCreateButton("Button1", 88, 312, 171, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $sData = ""
    for $i = 0 to 2
    If BitAND(GUICtrlRead($Checkbox[$i]), $GUI_CHECKED) = $GUI_CHECKED Then $sData &= $sCBText[$i] & ": ist angeCHECKED" & @CRLF
    ;dafür müssen die Texte auch in einem Array hinterlegt sein
    ;If BitAND(GUICtrlRead($Checkbox[$i]), $GUI_CHECKED) = $GUI_CHECKED Then $sData &= ControlGetText($Form1,"",$Checkbox[$i]) & ": ist angeCHECKED" & @CRLF
    ;die geht auch wenn die Texte direkt bei GUICtrlCreateCheckbox abgegeben werdem (also ohne Array)
    Next
    GUICtrlSetData($Edit1, $sData)
    EndSwitch
    WEnd

    [/autoit]

    mfg (Auto)Bert