Hallo i2c,
danke dir für die Anhaltspunkte es hat geklappt.
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
; Variablen
$titel = "Neue Runde es ist genug Zeit" ; Titel, es wird auch ein Info Icon mit angezeigt
$titel1 = "Achtung, die Zeit wird knapp" ; Titel, es wird auch ein Info Icon mit angezeigt
$DauerStd = 0 ; Dauer in Stunden
$DauerMin = 10 ; Dauer in Minuten
$DauerSek = 15; Dauer in Sekunden
; Begin Globale für Timer
Global $DauerGesammt = (60 * 60 * $DauerStd) + (60 * $DauerMin) + $DauerSek
; Ende Globale für Timer
Opt("GUIOnEventMode", 1) ; Activate Event mode
GUICreate("WarenHandelsTool", 750, 330, 520, 10)
GUISetOnEvent($GUI_EVENT_CLOSE, "close")
;Begin Label/Button Timer
Opt("GUIOnEventMode", 1)
$Label1 = GUICtrlCreateLabel("", 500, 113, 165, 22)
GUICtrlSetData($Label1, StringFormat("%02d Std %02d Min %02d Sek", $DauerStd, $DauerMin, $DauerSek))
GUICtrlSetFont(-1, 14, 600)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor($Label1, 0x000000)
$Button1 = GUICtrlCreateButton("Timer-Start", 585, 146, 100, 21, $BS_CENTER)
GUICtrlSetOnEvent(-1, "ButtonTimer1")
$Button2 = GUICtrlCreateButton("Timer-Stop/Reset", 585, 146, 100, 21, $BS_CENTER)
GUICtrlSetOnEvent(-1, "ButtonTimer2")
GUICtrlSetState($Button2, $GUI_HIDE)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; Begin Button Funktionen Timer
Func ButtonTimer1()
AdlibRegister("_start", 1000) ; Timer aktivieren
GUICtrlSetState($Button1, $GUI_HIDE)
GUICtrlSetState($Button2, $GUI_SHOW)
EndFunc
Func ButtonTimer2()
AdlibUnRegister("_start") ; Timer deaktivieren
Global $DauerGesammt = (60 * 60 * $DauerStd) + (60 * $DauerMin) + $DauerSek
GUICtrlSetData($Label1, StringFormat("%02d Std %02d Min %02d Sek", $DauerStd, $DauerMin, $DauerSek))
GUICtrlSetColor($Label1,0x000000)
ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),175,0,$titel,1)
GUICtrlSetState($Button1, $GUI_SHOW)
GUICtrlSetState($Button2, $GUI_HIDE)
EndFunc
; Ende Funktion Timer
; Funktion die vom Timer genutzt wird
Func _start()
GUICtrlSetData($Label1, "" & _Sek2StdMinSek($DauerGesammt))
If $DauerGesammt > 600 Then
GUICtrlSetColor($Label1, 0x000000)
ElseIf $DauerGesammt < 600 Then
GUICtrlSetColor($Label1, 0xFF0000)
EndIf
If $DauerGesammt > 600 Then
ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),175,0,$titel,1) ; Ausgabe der Information
ElseIf $DauerGesammt < 600 Then
ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),175,0,$titel1,2)
EndIf
$DauerGesammt = $DauerGesammt - 1 ; Immer den Wert 1 von der Dauer abziehen
EndFunc ;==>_start
; Ende Timerfunktion
Func close()
Exit
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Sleep(4000)
EndSwitch
WEnd
; Funktion zum umrechnen von Sekunden in Stunden, Minuten, Sekunden
Func _Sek2StdMinSek($value)
; Hier eine kleine Auswahl von Formaten, diese bitte bei dem Return Befehl mit angeben.
$format1 = "%02d:%02d:%02d"
$format2 = "%02d:%02d"
$format3 = "%02d Std %02d Min %02d Sek"
$format4 = "%02d Std. %02d Min."
$std = Floor($value / (60 * 60)) ; Berechnung der Stunden
$value = $value - ((60 * 60) * $std) ; Berechnung des Restwertes der Sekunden
$min = Floor($value / (60)) ; Berechnung der Minuten
$sek = $value - ((60) * $min) ; Rest Sekunden
Return StringFormat($format3, $std, $min, $sek) ; Rückgabe des formatierten Strings
EndFunc ;==>_Sek2StdMinSek
Wenn du Lust hast, könntest ja nochmal drüber schauen ob es rein vom Code her ok ist, oder ob es vielleicht noch Verbesserungen gäbe, da es zwar einwandfrei funktioniert, aber ich es doch schon gerne ordentlich machen möchte.
Mfg Ghostleader und nochmal vielen Dank für die Hilfe!