• guck dir mal die countdown.au3 von bugfix an!
    müsstest du mit der suchfunktion finden ;)

    hab noch mal den link besorgt : countdown.au3

    Einmal editiert, zuletzt von .::Mignon::. (19. Oktober 2007 um 21:26)

  • genau einfach mit dem gefehle guictrlsetdata()

    also du musst die zahl in eine variable schreiben wenn sie sich ändern soll da du ja von einem countdown spricht. das guictrlsetdata befehl sieht dann folgendermaßen aus:

    Spoiler anzeigen
    [autoit]

    guictrlsetdata($deinlabel,$deinezahl)

    [/autoit]
  • Also hab ein bischen anders gelöst vll nicht das beste aber es geht auch so halbwegs.

    Nun wüsste ich aber noch gern wie ich das Programm schließen kann wenn ich auf das "x" klicke. (weiß nicht wo ich jetzt "If $msg = $GUI_EVENT_CLOSE Then ExitLoop" oder ähnliches einfügen soll)

    Spoiler anzeigen


    #include <GuiConstants.au3>
    GUICreate("", 100, 50)

    $i = 30
    $i2 = 60

    $min = GUICtrlCreateLabel("29", 10, 10)
    GUICtrlCreateLabel(":", 25, 10)
    $sec = GUICtrlCreateLabel("59", 30, 10)

    GUISetState()
    While 1
    $MSG = GUIGetMsg()


    While $i > 0

    While $i2 > 0
    $i2 = $i2 -1
    GuictrlsetData($sec, $i2)
    Sleep(1000)

    WEnd
    $i2 = 59

    $i = $i -1
    GuictrlsetData($min, $i)
    Sleep(1000)


    WEnd

    WEnd

    Auch wüsst ich gern wie wie ich das Programm ganz unten rechts in die Ecke bekomme.

    thx

  • sowas in der art....

    Spoiler anzeigen
    [autoit]

    HotKeySet("{ESC}","ex")
    Global $TIME
    Const $ar_time_choose[6] = [1,60,3600,86400,2592000,31536000]

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

    #include <GUIConstants.au3>
    #include <GuiCombo.au3>
    $Form1 = GUICreate("Counter",180,200)

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

    $auswahl = GUICtrlCreateCombo("Zeitauswahl", 8, 10, 147, 25)
    GUICtrlSetData(-1,"Sekunden")
    GUICtrlSetData(-1,"Minuten")
    GUICtrlSetData(-1,"Stunden")
    GUICtrlSetData(-1,"Tage")
    GUICtrlSetData(-1,"Monate(30 Tage)")
    GUICtrlSetData(-1,"Jahre (365 Tage)")
    $TIME = GUICtrlCreateInput("Zeit eingeben.", 8, 40, 147, 25)
    $start = GUICtrlCreateButton("Start",10,70,147,25)
    $counter = GUICtrlCreateLabel("Please Wait....", 10, 110, 147, 25)
    GUISetState(@SW_SHOW)

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

    While 1

    ;GUICtrlSetData($counter,$TIME-$i)
    ;Sleep(100)

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $start
    If GuiCtrlRead($TIME) = "Zeit, die heruntergezählt werden soll." Or GuiCtrlRead($TIME) <= 0 Then
    MsgBox(48,"Ungültige Zeit.","Bitte geben Sie eine gültige Zeit ein.")
    ElseIf GuiCtrlRead($auswahl) = "Zeitauswahl" Then
    MsgBox(48,"Ungültige Zeit.","Bitte geben Sie eine gültige Zeit ein.")
    Else
    MsgBox(64,"Hinweiß","Zum beenden bitte Escape drücken.")
    $i = 0
    Do
    GUICtrlSetData($counter,"Zeitverbleibend:"&@CRLF&((GUICtrlRead($TIME)*$ar_time_choose[_GUICtrlComboGetCurSel($auswahl)-1])-$i)&" Sekunden")
    $i = $i+1
    Sleep(1000)
    Until ((GUICtrlRead($TIME)*$ar_time_choose[_GUICtrlComboGetCurSel($auswahl)-1])-$i) < 0
    EndIf
    EndSwitch
    WEnd

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

    Func ex()
    Exit
    EndFunc

    [/autoit]


    grad mal selbste gebastelt....hatte langeweile..zwar nicht der sinn und zweck anderen zu helfen aber grad mal egal^^

    snoozy

  • Leider bringt mir dein Script nix weil die 30 min konstant bleiben.
    Jetzt steh ich gerade vor mehreren Problemen z.B.
    mit welchem Befehl kann ich das regeln das ich das Program auch während es runterzählt mit einem Klick auf "x" beenden kann oder
    wie kann ich ein neues GUI Fenster erstellen in dem ich auch Anweisungen ausführen kann.

    thx

    • Offizieller Beitrag
    Zitat

    Original von Masterraven9
    ...
    Jetzt steh ich gerade vor mehreren Problemen z.B.
    mit welchem Befehl kann ich das regeln das ich das Program auch während es runterzählt mit einem Klick auf "x" beenden kann oder
    wie kann ich ein neues GUI Fenster erstellen in dem ich auch Anweisungen ausführen kann.
    thx

    Das geht nicht.
    Während die Zeitsetzung läuft bist du in der Schleife 'gefangen'.
    Andere Ereignisse lassen sich erst abfragen, wenn die Schleife beendet ist.
    Ein zeitgleiches Ausführen eines anderen Fensters geht ebenfalls nicht - AutoIt ist nicht multithreadfähig.

  • Also ich habs jetzt mal mit AdlibEnable versucht versteh es aber nicht so ganz

    Spoiler anzeigen
    [autoit]


    #include <GuiConstants.au3>
    GUICreate("test", 200, 150)

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

    $i = 59
    $i2 = 29

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

    AdlibEnable("sec",1000)

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

    func sec()
    IF $i = 0 Then
    $i = 59
    EndIf
    $i = $i-1
    EndFunc

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

    AdlibEnable("min",1800000)

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

    func min()
    IF $i2 = 0 Then
    $i2 = 29
    EndIf
    $i2 = $i2-1
    EndFunc

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

    GUICtrlCreateLabel($i2, 10, 10)
    GUICtrlCreateLabel(":", 25, 10)
    GUICtrlCreateLabel($i, 35, 10)

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

    GUISetState()

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

    While 1
    $MSG = GUIGetMsg()

    If $MSG = $GUI_EVENT_CLOSE Then ExitLoop

    WEnd

    [/autoit]
  • Ich hab hier mal Bugfix' Counter.au3 auf Adlibenable geändert, Ich hoffe, das ist OK:

    Spoiler anzeigen
    [autoit]

    ;#### BEISPIEL ####
    #region --- GuiBuilder code Start ---
    ; Script generated by AutoBuilder 0.6 Prototype

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

    #include <GuiConstants.au3>
    #include <CountdownAdlib.au3>

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

    GuiCreate("MyGUI", 392, 317,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))

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

    $Label_1 = GuiCtrlCreateLabel("Label1", 80, 100, 200, 70)

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

    GuiSetState()
    _CountDown(10,0,0,0,True,$Label_1)

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

    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case Else
    ;;;
    EndSelect
    WEnd
    Exit
    #endregion --- GuiBuilder generated code End ---

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

    ;#### BEISPIEL ENDE ####

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

    ;#### CountdownAdlib.au3 ####

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

    ;----------------------------------------------------------------------------------------------------------------------
    ; Funktion _CountDown($SEC [, $MIN=0 [, $HOUR=0 [, $DAY=0 [, $VISIBLEDOWN=True [, $ALTERNATECTRL='TT']]]]])
    ;
    ; Beschreibung zählt vorgegebene Zeitspanne (Tage, Stunden, Minuten, Sekunden) herunter mit Anzeige Tooltip (Standard)
    ; oder Ausgabe in GUI-Ctrl; wahlweise Anzeige von Restzeit (Standard) oder abgelaufener Zeit
    ;
    ; Parameter $SEC: Sekunden
    ; optional $MIN: Minuten
    ; optional $HOUR: Stunden
    ; optional $DAY: Tage
    ; optional $VISIBLEDOWN: Ansicht (herunterzählen/heraufzählen)
    ; optional $ALTERNATECTRL: GUI-Ctrl in das die Ausgabe mittels GUICtrlSetData() ausgegeben wird
    ;
    ; Erfordernisse #include <Date.au3>
    ;
    ; Autor BugFix ([email='bugfix@autoit.de'][/email])
    ;----------------------------------------------------------------------------------------------------------------------
    #include <Date.au3>
    Global $_CountDown_Sekunden
    Global $_CountDown_end
    Global $_CountDown_VISIBLEDOWN
    Global $_CountDown_ALTERNATECTRL
    Func _CountDown($SEC, $MIN=0, $HOUR=0, $DAY=0, $VISIBLEDOWN=True, $ALTERNATECTRL='TT')
    Global $_CountDown_Sekunden = $SEC + $MIN*60 + $HOUR*3600 + $DAY*86400
    Global $_CountDown_end = _DateAdd('s', $_CountDown_Sekunden, _NowCalc())
    Global $_CountDown_VISIBLEDOWN = $VISIBLEDOWN
    Global $_CountDown_ALTERNATECTRL = $ALTERNATECTRL
    AdlibEnable("_Counter",300)
    EndFunc ;==>_CountDown

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

    ;----------------------------------------------------------------------------------------------------------------------
    ; Funktion _Counter
    ; Wird von _CountDown mit AdlibEnable aufgerufen, um
    ;
    ; Autor BugFix ([email='bugfix@autoit.de'][/email])
    ; aufgeteilt auf 2 Funktionen für AdLib von Prog@ndy
    ;----------------------------------------------------------------------------------------------------------------------
    Func _Counter()
    Local $message
    $sec = _DateDiff('s', _NowCalc(), $_CountDown_end)
    If Not $_CountDown_VISIBLEDOWN Then
    $secShow = $_CountDown_Sekunden - $sec
    Else
    $secShow = $sec
    EndIf
    Select
    Case $secShow < 60
    If $_CountDown_ALTERNATECTRL = 'TT' Then
    ToolTip(StringFormat('%02u', $secShow) & ' s')
    Else
    GUICtrlSetData($_CountDown_ALTERNATECTRL, StringFormat('%02u', $secShow) & ' s')
    EndIf
    Case $secShow < 60*60
    $message = StringFormat('%02u', Floor($secShow/60)) & ':' & _
    StringFormat('%02u', Mod($secShow,60)) & ' min'
    If $_CountDown_ALTERNATECTRL = 'TT' Then
    ToolTip($message)
    Else
    GUICtrlSetData($_CountDown_ALTERNATECTRL, $message)
    EndIf
    Case $secShow < 60*60*24
    $message = StringFormat('%02u', Floor($secShow/3600)) & ':' & _
    StringFormat('%02u', Floor(Mod($secShow,3600)/60)) & ':' & _
    StringFormat('%02u', Mod(Mod($secShow,3600),60)) & ' h'
    If $_CountDown_ALTERNATECTRL = 'TT' Then
    ToolTip($message)
    Else
    GUICtrlSetData($_CountDown_ALTERNATECTRL, $message)
    EndIf
    Case Else
    $message = Floor($secShow/86400) & ' d / ' & _
    StringFormat('%02u', Floor(Mod($secShow,86400)/3600)) & ':' & _
    StringFormat('%02u', Floor(Mod(Mod($secShow,86400),3600)/60)) & ':' & _
    StringFormat('%02u', Mod(Mod(Mod($secShow,86400),3600),60)) & ' h'
    If $_CountDown_ALTERNATECTRL = 'TT' Then
    ToolTip($message)
    Else
    GUICtrlSetData($_CountDown_ALTERNATECTRL, $message)
    EndIf
    EndSelect
    If $sec <= 0 Then AdlibDisable()
    EndFunc

    [/autoit]