Brauche Hilfe (Neuling)

  • Hallo Community,

    bin erst seit ca. 1 Woche drann AutoIt zu verinnerlichen, da mein Chef ein Programm haben möchte.

    Nun stehe ich vor einem eher winzigem Problem. Ich bin echt noch keine Leuchte in der Sprache und muss mir
    vieles noch zusammenwurschteln.

    Aber nun zu meinem Prob:

    Ich habe eine kleine Gui mit einem einfachem MsgBox Countdown angelegt und möchte nun das wenn man auf
    Schliessen (X) klickt, das der User die Wahl hat zwischen Ok und Abbrechen. Soweit habe ich das auch schon gemacht, nur weiss ich
    nicht wie ich das AutoIt erkläre :D

    Hier mal das Script (ist wirklich nichts besonderes):

    [autoit]

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

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

    Opt("GUICoordMode",2)
    Opt("GUIResizeMode", 1)
    Opt("GUIOnEventMode", 1)

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("TestGui", 413, 298, 384, 252)
    $Button1 = GUICtrlCreateButton("Counter", 136, 128, 137, 33, 0)
    GUICtrlSetOnEvent(-1, "CounterPressed")
    GUISetOnEvent($GUI_EVENT_CLOSE, "TestGui")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Func CounterPressed()
    For $i = 10 to 1 Step -1
    MsgBox(0, "", "Countdown: " & $i, 2)
    Next
    MsgBox(0, "", "Take Off", 2)
    Sleep(2000)
    EndFunc

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

    Func TestGui()
    Select
    Case @GUI_CTRLID = $GUI_EVENT_CLOSE
    MsgBox(1+32, "Beenden", "Möchten Sie die Anwendung schließen?","")

    EndSelect

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

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

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

    Case $Button1
    EndSwitch
    WEnd

    [/autoit]

    Ich hoffe ihr könnt mir helfen!!!

    MfG

    Alex

    Einmal editiert, zuletzt von akleine (6. April 2010 um 14:30)

  • hier mal kurz überarbeitet

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    ; #include <ButtonConstants.au3> brauchst du für dieses bsp nicht
    ; #include <WindowsConstants.au3> brauchst du für dieses bsp nicht
    Opt("GUICoordMode", 2)
    Opt("GUIResizeMode", 1)
    Opt("GUIOnEventMode", 1)

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

    #region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("TestGui", 413, 298, 384, 252)
    $Button1 = GUICtrlCreateButton("Counter", 136, 128, 137, 33, 0)
    GUICtrlSetOnEvent(-1, "CounterPressed")
    GUISetOnEvent($GUI_EVENT_CLOSE, "TestGui")
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    Func CounterPressed()
    For $i = 10 To 1 Step -1
    MsgBox(0, "", "Countdown: " & $i, 2)
    Next
    MsgBox(0, "", "Take Off", 2)
    Sleep(2000)
    EndFunc ;==>CounterPressed

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

    Func TestGui()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    $msg = MsgBox(1 + 32, "Beenden", "Möchten Sie die Anwendung schließen?", "")
    If $msg = 1 Then
    Exit
    EndIf
    EndSelect
    EndFunc ;==>TestGui

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

    While 1
    Sleep(100); da du im onevent modus bist brauchst du nichs in der while schleife
    WEnd

    [/autoit]
  • Danke Danke!

    Ich sag ja is nix großes ($msg, mein Gott da hätt ich auch selber drauf kommen können ;D)

    MfG
    Alex

  • [autoit]

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

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

    $Form1 = GUICreate("TestGui", 413, 298, 384, 252)
    $Button1 = GUICtrlCreateButton("Counter", 136, 128, 137, 33, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    $MsgBoxVar = MsgBox(1+32, "Beenden", "Möchten Sie die Anwendung schließen?","")
    If $MsgBoxVar = 1 Then Exit
    Case $Button1
    For $i = 10 to 1 Step -1
    MsgBox(0, "", "Countdown: " & $i, 2)
    Next

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

    MsgBox(0, "", "Take Off", 2)
    Sleep(2000)
    EndSwitch
    WEnd

    [/autoit]

    So sollte es funktionieren :)

    Edit : Hmpf zu spät ^^

    21 is only half the truth.

  • zu spät wurde ich nicht sagen. das sind 2 verschiedene varanten einmal mit oneventmod und einmal mit msg

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.