Countdown

  • Hallo alle zusammen,
    ich möchte mit AutoIt mein erstes großes Projekt in Angriff nehmen.
    Dabei geht es darum, dass ich eine Input-Box erstellen möchte wo man beispielsweise 30 Sekunden eingibt.
    Dann soll sich ein Fenster öffnen in dem der Sekundenablauf angezeigt wird.
    Die Input-Box kann anzeigen lassen ich nur ich verstehe nicht wie die Sekunden angezeigt werden können ?(

    Ich hoffe auf so gute Hilfe wie die letzten Male, noch mal vielen Dank [Blockierte Grafik: http://www.freesoft-board.to/images/smilies/danke.gif]

    MfG. Hunter77

  • Hi Hunter :)

    ich würde dich gerne bei deinem Problem unterstüzen und helfen, doch leider

    habe ich das selbe Problem ! Jedoch meintest du doch glaub ich eine GUI oder ? Ne Input

    ist doch das Fenster wo du was reintippt wie bei ICQ z.B. oder irre ich mich da ?!


    mfg. joke

  • Spoiler anzeigen
    [autoit]

    $sec = InputBox("Zeit:", "Geben Sie die Zeit für den Countdown in Sekunden an!")
    For $i = $sec To 0 step -1
    sleep(1000)
    TrayTip("Countdown:", $i& " seconds to"&@CRLF&"Computer termination!",1)
    Next

    [/autoit]
  • Hi Chaoskeks, danke für das superskript...doch glaub ich ist das was wir meinen das man eine kleine GUI hat und wenn man sie dann ausführt, das der Countdown in der Gui abläuft :).


    lg. Joke

  • @Joke & Hunter, dann erstellt doch eine Gui mit einem InputFeld(GuiCtrlCreateInput), einem Label(GuictrlCreateLabel), und einem Button(GuiCtrlCreateButton). Dann schreibt der User eine Zahl ins Input und liest diese via Button mit GuiCtrlRead auslesen, und dann eine Schleife durchlaufen, die das Label mit GuiCtrlSetData immer um 1 verringert.

    Habe mit absicht kein Code hier reingestellt, da ihr das mit sicherheit selber hinbekommt, wenn ihr euch ein wenig Mühe gebt und zudem auch noch die Hilfe benutzt.

  • ok, ich werde es auf jeden Fall gleich selbst mal versuchen ! werde dann schreiben wie es gelaufen ist.

  • so, die GUI konnte ich erstellen, konnte leider nichts
    wirklich damit anfangen...Hilfe hat auch net geholfen...oder ich bin zu doof

    um es zu verstehen xD

    na ja..


    lg.joke

  • So, da du es ja wenigstens versucht hast ;) Hier mal meine Lösung, warscheinlich nicht die eleganteste und beste, aber wenigstens etwas ;)

    Spoiler anzeigen
    [autoit]

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

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

    $hGui = GUICreate("Countdown")
    $Input = GUICtrlCreateInput("",50,50,100,20,$ES_NUMBER)
    $Label = GUICtrlCreateLabel("",70,100,100,100)
    GUICtrlSetFont(-1,24)
    $Button = GUICtrlCreateButton("Start Countdown",170,50)

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

    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    $Time = GUICtrlRead($Input)
    $Count = $Time
    If $Count = "" Or $Count = "0" Then
    MsgBox(64,"Error","Bitte eine Zahl eingeben, die größer als Null ist.")
    Else
    AdlibEnable("_countdown",1000)
    GUICtrlSetData($Label,$Count)
    EndIf
    EndSwitch
    WEnd

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

    Func _countdown()
    $Count -= 1
    If $Count == 0 Then
    GUICtrlSetFont($Label,12)
    GUICtrlSetData($Label,"Die " & $Time & " sekunden sind abgelaufen")
    AdlibDisable()
    Else
    GUICtrlSetData($Label,$Count)
    EndIf

    EndFunc

    [/autoit]
  • Hallo @ChaosKeks,

    ich glaub mein Timer geht stark vor, beim lesen dieses Themas drängt sich bei mir der Verdacht auf das heute der 1. April ist,

    mfg (Auto)Bert

  • Ein großen dank an SiLenCa ! Ich werde das Skript gleich erstmal analysieren und checken wo es bei mir geharckt hat. Für mich wäre mein Problem beseitigt ;). Größten Dank nochmal !

    Zitat

    beim lesen dieses Themas drängt sich bei mir der Verdacht auf das heute der 1. April ist,

    ich kann dir garantieren das heute nicht der erste April ist :whistling: