GUI, Button Frage.

  • Hallo liebe community,

    ich bin noch sehr frisch in AutoIt. Bastel jetzt ein bisschen mit Gui's rum, um meine Scripte etwas anschaulicher zu machen. Bin dabei schon sehr früh auf ein Problem gestoßen. Undzwar, ich möchte einen Button zum Starten des Scriptes haben, der bei betätigung zum Stop Button wird. Dann bei erneuter Betätigung wieder zum Start button.

    Bis jetzt bin ich soweit, das er beim betätigen zum Stop Button wird aber ich ihn nicht wieder zurückkriege.

    hier ist mein script.

    Spoiler anzeigen

    #include

    GUICreate("Test")
    GUISetState()
    $Button = GUICtrlCreateButton("Start", 8, 37, 262, 20, 0)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    GUICtrlSetData($Button,"Stop")
    Case ($Button,"Stop")
    GUICtrlSetData($Button,"Start")
    EndSwitch
    WEnd

    Edit:: Case ($Button,"Stop")
    GUICtrlSetData($Button,"Start") ; das war nur zum Testen, welches nicht funktioniert :(

    ich freue mich über jegliche Tipps, brauche nicht unbedingt die Lösung serviert zu haben. Danke

    Einmal editiert, zuletzt von SiLenCa (16. Februar 2009 um 21:18)

  • Bau dir ein Toggle

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    GUICreate("Test")
    GUISetState()
    $Button = GUICtrlCreateButton("Start", 8, 37, 262, 20, 0)
    Dim $ButtonToggle = 0
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    If $ButtonToggle == 0 Then
    GUICtrlSetData($Button,"Stop")
    $ButtonToggle = 1
    Else
    GUICtrlSetData($Button,"Start")
    $ButtonToggle = 0
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Eine Möglichkeit wäre diese (über eine Variable)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    GUICreate("Test")
    GUISetState()
    $status = 1
    $Button = GUICtrlCreateButton("Start", 8, 37, 262, 20, 0)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    If $status = 1 Then
    MsgBox(0, "", "Start")
    GUICtrlSetData($Button, "Stop")
    $status = 0
    Else
    MsgBox(0, "", "Stopp")
    GUICtrlSetData($Button, "Start")
    $status = 1
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Edit: Mist :wacko: zu langsam, aber gleiche Idee :thumbup:

  • Hi ^^
    Bin ungefähr auf dem gleichen Levelwissen von autoIt wie du ^^
    kannst mich ja mal icq adden

  • Vielen dank für die schnellen Antworten ;) Klappt wunderbar, hätte ich auch vielleicht mit etwas Zeit selber drauf kommen können.
    Super Board hier.