Hey Liebe Leute..
Ich bin mal wieder auf ein Problem gestoßen welches sich nicht so einfach lösen lässt..
zumindest nicht für mich..
Mein Script ist zwar schon Fertig und Funktioniert auch Super.
Jedoch hat es einen unschönen Schönheitsfehler.
Momentan ist es so:
Die ausgabe des Timers bzw. des Countdown zählt in Sekunden runter.. also bei zb. 60 Minuten zählt er von 3600 sek. runter..
das geht dann pro Sekunde so weiter .. 3599 ... 3598 ... 3597 ... 3596 ... ich denke ihr versteht..
Eigenbemühungen:
Nun... ich hab einiges versucht mit umrechnungen und If abfragen etc etc..
auch die TimerDiff und TimerInit funktion hab ich mir mehrfach angesehen jedoch versteh ich das einfach nicht so richtig.
Timerinit setzt den start des Timer ab dem gezählt werden soll und TimerDiff gibt dann die verstrichene Zeit aus?!
Wie ich das umsetze? K.a.
Mein Ziel:
Die ausgabe des Timers soll zb. wenn 5 Minuten eingegeben wurde.. nicht von 300 sek runterzählen sondern es so anzeigen 00:05:00
und bei einer Stunde dann eben 01:00:00 ... Quasi im HH: MM: SS Format.
Ich suche möglichst die am einfachsten zu verstehende Lösung..
Aber wenn ich nicht um TimerInit und TimerDiff drumrumkomme..
Bitte ich evtl um ein BeispielScript den ich auch verstehen kann.. sozusagen für Dummies..
Und auch wenn es zuviel verlangt sein mag..
Wäre klasse wenn ihr alles was ihr am Script macht kommentieren würdet.
Mein Script:
Ich hab mir die Kommentare im Script mal gespart denn ich behaupte, ihr versteht den auch ohne.. der ist sehr kurz und einfach :p
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GuiOnEventMode", 1)
Global $Active = 0, $In = "", $Set = ""
#Region ### START Koda GUI section ### Form=
$Shutdown = GUICreate("Shutdown", 290, 99, 567, 326)
GUISetFont(8, 800, 0, "Comic Sans MS")
GUISetBkColor(0x7A96DF)
; Buttons
$Start = GUICtrlCreateButton("Start", 16, 56, 43, 25)
$Stop = GUICtrlCreateButton("Stop", 80, 56, 43, 25)
$Reset = GUICtrlCreateButton("Reset", 208, 56, 67, 25)
$Info = GUICtrlCreateButton("Info", 144, 56, 43, 25)
; Inputs
$Time = GUICtrlCreateInput("", 16, 16, 169, 24, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER))
$Settings = GUICtrlCreateCombo("", 208, 17, 65, 25)
GUICtrlSetData(-1, "Sek|Min|Std")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUICtrlSetOnEvent($Start, "_Start")
GUICtrlSetOnEvent($Stop, "_Stop")
GUICtrlSetOnEvent($Reset, "_Reset")
GUICtrlSetOnEvent($Info, "_Info")
GUICtrlSetState($Stop, $GUI_DISABLE)
GUICtrlSetState($Reset, $GUI_DISABLE)
While 1
Sleep (1000)
If $Active = 1 Then
$In -=1
GUICtrlSetData($Time, "Noch "& $In &" sek") ; hier soll quasi der timer schlussendlich als Zb. "01:05:35" ausgegeben werden.
EndIf
If $In = 0 Then
$Active = 0
;~ Shutdown(5)
EndIf
WEnd
Func _Start()
[/autoit] [autoit][/autoit] [autoit]If GUICtrlRead($Start) = "Start" Then
$In = GUICtrlRead($Time)
$Set = GUICtrlRead($Settings)
EndIf
If ($In AND $Set) = "" Then
MsgBox(0,"Fehler", "Die Angaben sind unvollständig.")
Else
GUICtrlSetState($Start, $GUI_DISABLE)
GUICtrlSetState($Stop, $GUI_ENABLE)
GUICtrlSetState($Info, $GUI_DISABLE)
GUICtrlSetState($Reset, $GUI_DISABLE)
GUICtrlSetState($Time, $GUI_DISABLE)
GUICtrlSetState($Settings, $GUI_DISABLE)
If GUICtrlRead($Start) = "Start" Then
If $Set = "Min" Then $In *= 60
If $Set = "Std" Then $In *= 3600
EndIf
$Active = 1
EndIf
EndFunc
Func _Stop()
$Active = 0
GUICtrlSetState($Reset, $GUI_ENABLE)
GUICtrlSetState($Start, $GUI_ENABLE)
GUICtrlSetData($Start, "Weiter")
EndFunc
Func _Reset()
GUICtrlSetData($Time, "")
GUICtrlSetData($Settings, "")
GUICtrlSetData(-1, "Sek|Min|Std")
GUICtrlSetState($Start, $GUI_ENABLE)
GUICtrlSetState($Info, $GUI_ENABLE)
GUICtrlSetData($Start, "Start")
GUICtrlSetState($Stop, $GUI_DISABLE)
GUICtrlSetState($Reset, $GUI_DISABLE)
GUICtrlSetState($Time, $GUI_ENABLE)
GUICtrlSetState($Settings, $GUI_ENABLE)
EndFunc
Func _Info()
MsgBox(0,"By ThirtySix", "v1.0")
EndFunc
Func _Exit()
Exit
EndFunc