Hallo
ich habe mir eine Countdown Funktion gebastelt Dieser übergeb ich ein Zahl an Sekunnden beispielweise 3670 Sekunden. Die Funktion soll dann eine Message zurück geben wie "1 Stunde 1 Minute und 10 Sekunden" und halt runterzählen.
Aber meine Funktion gibt nur "0 Sekunden verbleibend" zurück! Kann mal jemand den Code checken?
Func Countdown($Sec)
$Htime = Int($Sec / 3600)
$Mtime = Int(($Sec - ($Htime*3600)) / 60)
$Stime = Int(($Sec - ($Htime*3600)) - ($Mtime*60))
; Hour Or Hours
If $Htime = 1 Then
$Case1 = "Stunde"
Else
$Case1 = "Stunden"
EndIf
; Minute Or Minutes
If $Mtime = 1 Then
$Case2 = "Minute"
Else
$Case2 = "Minuten"
EndIf
; Hour Or Hours
If $Stime = 1 Then
$Case3 = "Sekunde"
Else
$Case3 = "Sekunden"
EndIf
If $Htime > 0 Then
$Message = StringFormat("%d "& $Case1 &" %d "& $Case2 &" %d "& $Case3 &" verbleibend", $Htime, $Mtime, $Stime)
ElseIf $Htime < 0 And $Mtime > 0 Then
$Message = StringFormat("%d "& $Case2 &" %d "& $Case3 &" verbleibend", $Mtime, $Stime)
ElseIf $Htime < 0 And $Mtime < 0 And $Stime > 0 Then
$Message = StringFormat("%d "& $Case3 &" verbleibend", $Stime)
Else
$Message = StringFormat("%d "& $Case3 &" verbleibend", 0)
EndIf
Return $Message
[/autoit][autoit][/autoit][autoit]EndFunc
[/autoit]Jetzt hab noch ein, Frage:
Die Sekunden sollen heruntergezählt werden. Was ist jetzt besser?
1. ich übergebe der Funktion die Zahl 3600 und mach eine Schleife in der ich die Sekunden herunterzähle und immer mittels GUICtrlSetData() immer die Nachricht neu ersetzte oder
2. Ich mache ausserhalb der Funktion eine Schleife wo ich die Sekunden herunterzähle und die Funktion dann immer neu aufrufe mit den Sekunden.
Was ist jeztz besser?