;----------------------------------------------------------------------------------------------------------------------
; 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>
#include <GUIConstants.au3>
GUICreate("Verbleibende Zeit",200,200)
$Time = GUICtrlCreateLabel("",10,10)
GUISetState (@SW_SHOW)
While 1
$Msg = GUIGetMsg()
Select
Case $Msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
Func _CountDown($SEC, $MIN=0, $HOUR=0, $DAY=0, $VISIBLEDOWN=True, $ALTERNATECTRL='TT')
$Sekunden = $SEC + $MIN*60 + $HOUR*3600 + $DAY*86400
$end = _DateAdd('s', $Sekunden, _NowCalc())
Local $message
;~ Do
;~ Sleep(100)
$sec = _DateDiff('s', _NowCalc(), $end)
If Not $VISIBLEDOWN Then
$secShow = $Sekunden - $sec
Else
$secShow = $sec
EndIf
Select
Case $secShow < 60
If $ALTERNATECTRL = 'TT' Then
GUICtrlSetData($Time,StringFormat('%02u', $secShow) & ' s')
Else
GUICtrlSetData($ALTERNATECTRL, StringFormat('%02u', $secShow) & ' s')
EndIf
Case $secShow < 60*60
$message = StringFormat('%02u', Floor($secShow/60)) & ':' & _
StringFormat('%02u', Mod($secShow,60)) & ' min'
If $ALTERNATECTRL = 'TT' Then
GUICtrlSetData($time,$message)
Else
GUICtrlSetData($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 $ALTERNATECTRL = 'TT' Then
GUICtrlSetData($time,$message)
Else
GUICtrlSetData($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 $ALTERNATECTRL = 'TT' Then
GUICtrlSetData($time,$message)
Else
GUICtrlSetData($ALTERNATECTRL, $message)
EndIf
EndSelect
;~ Until $sec = 0
EndFunc ;==>_CountDown
AdlibEnable("Count", 1000)
[/autoit][autoit][/autoit][autoit]Func Count()
GUICTRLSetData($Time,_Countdown(_DateDiff("s", _NowCalc(), "2008/06/13 00:00:00"),_DateDiff("n", _NowCalc(), "2008/06/13 00:00:00"),_DateDiff("h", _NowCalc(), "2008/06/13 00:00:00"),_DateDiff("d", _NowCalc(), "2008/06/13 00:00:00")))
EndFunc
Möchte also den Countdown als Label anzeigen.
pee hat mir schon etwas geholfen, nur leider geht es immer noch nicht - was ist falsch?
Vielen Dank schonmal
Walle