Hi BugFix hat da im August letztes Jahr mal nen Bsp. für jemanden gemacht.
Das habe ich mir mal angesehen und finde das superpraktisch für meine Adminsaächelchen.
Habe nur ein mini Problem mit den Schleifen usw.
Das ist aber bekannt hier das ich des wohl nie gebacken bekomme
Naja, also meine Frage hierzu :
[autoit]
#include <guiconstants.au3>
#include <Date.au3>
Global $arBt[8][2], $arIn[8][3], $arCounter[8][2], $y = 10, $input
GUICreate('test')
For $i = 0 To UBound($arBt) -1
$arBt[$i][0] = GUICtrlCreateButton('set Time', 10, $y, 60, 20)
$arIn[$i][0] = GUICtrlCreateInput('', 80, $y, 40, 20)
$arCounter[$i][0] = GUICtrlCreateLabel('', 140, $y+3, 80, 17)
$arBt[$i][1] = GUICtrlCreateButton('Reset', 240, $y, 60, 20)
GUICtrlSetState($arBt[$i][1], $GUI_DISABLE)
$y += 30
Next
GUISetState()
Do
$msg = GUIGetMsg()
_SetCounter()
For $i = 0 To UBound($arBt) -1
If $msg = $arBt[$i][0] Then
$arCounter[$i][1] = 1
$input = GUICtrlRead($arIn[$i][0])
If $input = '' Then ContinueLoop
If StringInStr($input, ':') Then
$input = StringSplit($input, ':')
$input = $input[1]*60 + $input[2]
EndIf
$arIn[$i][1] = $input * 60
$arIn[$i][2] = _NowCalc()
GUICtrlSetState($arBt[$i][0], $GUI_DISABLE)
GUICtrlSetState($arBt[$i][1], $GUI_ENABLE)
ElseIf $msg = $arBt[$i][1] Then
GUICtrlSetState($arBt[$i][0], $GUI_ENABLE)
GUICtrlSetState($arBt[$i][1], $GUI_DISABLE)
GUICtrlSetData($arCounter[$i][0], '')
GUICtrlSetData($arIn[$i][0], '')
$arIn[$i][1] = 0
EndIf
Next
Until $msg = $GUI_EVENT_CLOSE
Func _SetCounter()
Local $sec
For $i = 0 To UBound($arCounter) -1
If $arCounter[$i][1] <> 1 Then ContinueLoop
If $arIn[$i][1] = 0 Then ContinueLoop
$sec = $arIn[$i][1] - _DateDiff("s", $arIn[$i][2], _NowCalc())
Select
Case $sec < 60
GUICtrlSetData($arCounter[$i][0], StringFormat('%02u', $sec) & ' s')
Case $sec < 60*60
GUICtrlSetData($arCounter[$i][0], StringFormat('%02u', Floor($sec/60)) & ':' & _
StringFormat('%02u', Mod($sec,60)) & ' min')
Case $sec < 60*60*24
GUICtrlSetData($arCounter[$i][0],StringFormat('%02u', Floor($sec/3600)) & ':' & _
StringFormat('%02u', Floor(Mod($sec,3600)/60)) & ':' & _
StringFormat('%02u', Mod(Mod($sec,3600),60)) & ' h')
EndSelect
If $sec = 0 Then
SoundPlay(@WindowsDir & '\Media\tada.wav')
$arCounter[$i][1] = 0
EndIf
Next
EndFunc
Egal bei welchem Feld der Counter auf 0 geht es passiert immer das gleiche.
Nun würde ich gerne bei jedem Feld etwas anderes nach Time ausführen.
Wie muss ich das zusammenpacken ?
Sollte ich das in ein Array packen und mir dort die Infos holen oder wie müsste ich das machen ?
Vielen dank für eure Hilfe.