Mit Button Funktion einer Checkbox aktivieren

  • Hallo,
    ich habe eine GUI mit einem Startbutton und 2 Checkboxen.
    Wenn ich auf Start klicke, sollen sich die Schleifen von den Checkboxen auslösen.

    [autoit]

    #include
    #include
    #include
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 179, 128, 192, 124)
    $Button1 = GUICtrlCreateButton("Start", 48, 80, 75, 25, $WS_GROUP)
    $Checkbox1 = GUICtrlCreateCheckbox("Funktion 1", 48, 8, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Funktion 2", 48, 32, 97, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

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


    Wenn die Checkbox makiert ist, soll in Checkbox 1 die ganze zeit "°" gesendet werden, und gleichzeitig in CB 2 die ganze Zeit "test".

    2 Mal editiert, zuletzt von MasterOfTime (14. Februar 2010 um 11:39)

  • Hoffe, das hast du gesucht. ;)

    Beispiel Checkboxen
    [autoit]


    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.2.0
    Author: qixx (http://www.autoit.de)
    Credits:

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

    #ce ----------------------------------------------------------------------------

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

    #Region ### Includes
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #EndRegion ### Includes

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

    #Region ### GUI
    $MainGUI = GUICreate("Form1", 179, 128, 192, 124)
    $Button1 = GUICtrlCreateButton("Start", 48, 80, 75, 25, $WS_GROUP)
    $Checkbox1 = GUICtrlCreateCheckbox("Funktion 1", 48, 8, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Funktion 2", 48, 32, 97, 17)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### GUI

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

    While 1
    Sleep(10)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    If WinActive($MainGUI) Then
    Exit
    Endif
    Case $Button1
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    MsgBox(0,"","Funktion1")
    EndIf
    If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
    MsgBox(0,"","Funktion2")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Wenn nur eine der Funktionen ausgeführt werden soll,
    benutze Radioboxen:

    Beispiel Radioboxen
    [autoit]


    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.2.0
    Author: qixx (http://www.autoit.de)
    Credits:

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

    #ce ----------------------------------------------------------------------------

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

    #Region ### Includes
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #EndRegion ### Includes

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

    #Region ### GUI
    $MainGUI = GUICreate("Form1", 179, 128, 192, 124)
    $Button1 = GUICtrlCreateButton("Start", 48, 80, 75, 25, $WS_GROUP)
    $Radio1 = GUICtrlCreateRadio("Funktion 1", 48, 8, 97, 17)
    $Radio2 = GUICtrlCreateRadio("Funktion 2", 48, 32, 97, 17)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### GUI

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

    While 1
    Sleep(10)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    If WinActive($MainGUI) Then
    Exit
    Endif
    Case $Button1
    If GUICtrlRead($Radio1) = $GUI_CHECKED Then
    MsgBox(0,"","Funktion1")
    ElseIf GUICtrlRead($Radio2) = $GUI_CHECKED Then
    MsgBox(0,"","Funktion2")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    mfG
    qixx


  • Danke, genau sowas habe ich gesucht.

  • Hallo MeisterDerZeit,

    einmal ganz davon abgesehen, dass ich nicht verstehe warum ein Programm die ganze Zeit TEST spamen soll, schau doch einfach in die Hilfe zu GuiCtrlGetState,

    mfg (Auto)Bert

  • Wenn du willst, dass Checkbox 2 nur aktiviert
    ist, wenn du Checkbox 1 Aktiviert hast, versuche
    es mal so: (Habe auch nocht was zum stoppen
    eingebaut ;))

    Beispiel Checkbox 2 wenn Checkbox 1
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.2.0
    Author: qixx (http://www.autoit.de)
    Credits:

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

    #ce ----------------------------------------------------------------------------

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

    #Region ### Includes
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #EndRegion ### Includes

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

    #Region ### GUI
    $MainGUI = GUICreate("Form1", 179, 128, 192, 124)
    $Button1 = GUICtrlCreateButton("Start", 48, 80, 30, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Stop", 85, 80, 30, 25, $WS_GROUP)
    $Checkbox1 = GUICtrlCreateCheckbox("Funktion 1", 48, 8, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Funktion 2", 48, 32, 97, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### GUI

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

    AdlibRegister("_stop",200)

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

    While 1
    Sleep(10)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    If WinActive($MainGUI) Then
    Exit
    Endif
    Case $Button1
    $on = True
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    While $On = True
    MsgBox(0,"","Funktion1")
    If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
    MsgBox(0,"","Funktion2")
    EndIf
    WEnd
    EndIf
    $on = False
    EndSwitch
    WEnd

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

    Func _stop()
    If GUIGetMsg() = $Button2 Then
    $on = False
    EndIf
    EndFunc

    [/autoit]

    Mir ist aufgefallen, dass das doch leider sehr
    unsauber geskriptet ist.^^ Aber deine Frage scheint
    ja schon beantwortet. ;)

    MfG
    qixx