hallo,
habe ein problem.. wenn der counter aktiv ist, geht ein anderer button nicht mehr, wie kann ich das lösen? vllt mit einem kleinen beispiel..
und hier ist mein problem.. testet selbst:
Spoiler anzeigen
#include <GUIConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Local $sec, $min, $hr, $day
$Form1_1 = GUICreate("Form1", 453, 348, 243, 135)
$Button1 = GUICtrlCreateButton("start iwas anderes", 32, 168, 143, 34, 0)
$bt = GUICtrlCreateButton("GO", 184, 304, 25, 17, 0)
$Label1 = GUICtrlCreateLabel("Tage", 104, 232, 36, 17)
$iD = GUICtrlCreateInput('', 152, 232, 25, 21, $ES_NUMBER)
GUICtrlCreateLabel('Stunden', 104, 256, 36, 17)
$iH = GUICtrlCreateInput('', 152, 256, 25, 21, $ES_NUMBER)
GUICtrlCreateLabel('Minuten', 104, 280, 36, 17)
$iM = GUICtrlCreateInput('', 152, 280, 25, 21, $ES_NUMBER)
GUICtrlCreateLabel('Sekunden', 104, 304, 36, 17)
$iS = GUICtrlCreateInput('', 152, 304, 25, 21, $ES_NUMBER)
$iDown = GUICtrlCreateInput('', 376, 120, 49, 21, $ES_READONLY)
GUISetState(@SW_SHOW)
While True
$msg = GUIGetMsg()
Switch $msg
Case $Button1
MsgBox (1,"Test","Button funktioniert")
EndSwitch
If $msg = $bt Then
If GUICtrlRead($iD) = '' Then
$day = 0
Else
$day = GUICtrlRead($iD)
EndIf
If GUICtrlRead($iH) = '' Then
$hr = 0
Else
$hr = GUICtrlRead($iH)
EndIf
If GUICtrlRead($iM) = '' Then
$min = 0
Else
$min = GUICtrlRead($iM)
EndIf
If GUICtrlRead($iS) = '' Then
$sec = 0
Else
$sec = GUICtrlRead($iS)
EndIf
_CountDown($sec, $min, $hr, $day, True, $iDown)
ElseIf $msg = $GUI_EVENT_CLOSE Then
Exit
EndIf
WEnd
;----------------------------------------------------------------------------------------------------------------------
; 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>
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
ToolTip(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
ToolTip($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
ToolTip($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
ToolTip($message)
Else
GUICtrlSetData($ALTERNATECTRL, $message)
EndIf
EndSelect
Until $sec = 0
EndFunc;==>_CountDown