- Offizieller Beitrag
Nur was muss ich machen , dass man die Reseten kann ...wenn sie auf 0waren ?!
Mal mein letztes Bsp. angucken... (Da ist das schon drin)
Nur was muss ich machen , dass man die Reseten kann ...wenn sie auf 0waren ?!
Mal mein letztes Bsp. angucken... (Da ist das schon drin)
...ich will des ja peer Knopf reseten und nicht sofort weg....
Na dasselbe, was unter If $sec = 0 passiert aber halt für das zugehörige Control nur nach Buttondruck.
verstehe ich net >_>
Sorry -.-
If $sec = 0 Then
SoundPlay(@WindowsDir & '\Media\tada.wav')
$arCounter[$i][1] = 0
GUICtrlSetState($arBt[$i], $GUI_ENABLE) ; Button wieder Enablen
GUICtrlSetData($arCounter[$i][0], '') ; Zeitanzeige Label löschen
GUICtrlSetData($arIn[$i][0], '') ; eingegebene Zeit löschen
EndIf
If $sec = 0 Then
SoundPlay(@ScriptDir & '\Media\Sound.wav')
$Label[$i][1] = 0
GUICtrlSetState($Plvl[$i], $GUI_ENABLE) ; Button wieder Enablen
GUICtrlSetData($Label[$i][0], '') ; Zeitanzeige Label löschen
GUICtrlSetData($Input[$i][0], '') ; eingegebene Zeit löschen
EndIf
Geht net....
Das war das Codestücke aus meinem Bsp. und das funktioniert. Ich habe es nur kommentiert, damit du weißt, was passiert.
Mußt es dann anpassen, wenn du es per Button machen willst.
Edit:
Na, hast du es hinbekommen? Ich habs dir mal hier im Muster angepaßt. Du kannst so auch mitten im Countdown zurücksetzen, nicht erst bei Null.
Und du kannst jetzt auch Stunden eingeben, also:
bis 1 Std. die Minutenzahl, z.B.: 45
darüber h:min, also z.B.: 1:05
#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
=)
Danke Dir =)
MfG Teddy
Ich bins wieder >_>
Bei deinem war ja des ....
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
Bei neinem war "While1" und Case
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $VerzeichnisWaelen
_SROexesuchen()
Case $MenuItem3
Exit
Case $MenuItem4
$starlol = ShellExecute ( @ScriptDir & "\Help.ini" )
Case $Min
WinSetState("SRO_Client","",@SW_SHOWMINNOACTIVE)
Case $Hide
WinSetState("SRO_Client","",@SW_HIDE)
TrayTip( "","Silkroad ist gehided !" , 15 )
Case $Max
WinSetState("SRO_Client","",@SW_MAXIMIZE)
case $Speichern123
Global $frank1 = GUICtrlRead( $Combo1 )
Global $frank2 = GUICtrlRead( $Combo2 )
Global $frank3 = GUICtrlRead( $Combo3 )
Global $frank4 = GUICtrlRead( $Combo4 )
Global $frank5 = GUICtrlRead( $Combo5 )
Global $frank6 = GUICtrlRead( $Combo6 )
Global $frank7 = GUICtrlRead( $Combo7 )
Global $Belegung1 = iniwrite( @scriptdir & "\Datei.ini" , "Taste1" , "" , $frank1 )
Global $Belegung2 = IniWrite( @scriptdir & "\Datei.ini" , "Taste2" , "" , $frank2 )
Global $Belegung3 = iniwrite( @scriptdir & "\Datei.ini" , "Taste3" , "" , $frank3 )
Global $Belegung4 = IniWrite( @scriptdir & "\Datei.ini" , "Taste4" , "" , $frank4 )
Global $Belegung5 = iniwrite( @scriptdir & "\Datei.ini" , "Taste5" , "" , $frank5 )
Global $Belegung6 = IniWrite( @scriptdir & "\Datei.ini" , "Taste6" , "" , $frank6 )
Global $Belegung7 = iniwrite( @scriptdir & "\Datei.ini" , "Taste7" , "" , $frank7 )
TrayTip( "" , "Datein gespeichert" , 4 )
Case $Start
$startpath = IniRead( @scriptdir & "\Datei.ini" , "Silkroad Ordner", "Silkroad" , "" )
run ( $startpath )
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Beides geht nicht....Es geht nur eis (hab ich schon probiert) was muss ich wo rein machen das beides geht ?!
Also ich bin nicht gewillt letztendlich dein Skript komplett umzuschreiben. Das mußt du selber tun. Genug Hinweise hab ich dir gegeben.
Ich habe aber den Eindruck, dass es bei dir noch am grundlegenden Verständnis mangelt. Da solltest du dich erst mal mit den Grundlagen beschäftigen und kleine Brötchen backen.
ich backe keine brötchen
Nur des Do .... Geht net in While dan geht des net...
und des While in Do...
..geht net....>_<
und bei den Hilfe Script hab ich nix gefunden....hier in der Sufu steht auch nix...
MfG <-
Hab grad in der Shoutbox gelesen, dass du an den beiden Schleifenformen
While .. WEnd
Do ... Until
verzweifelst.
Ich zeigs dir am Bsp., beide Varianten machen absolut dasselbe, nur auf andere Art und Weise:
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then Exit
WEnd
; oder
Do
$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE
Siehst du den Unterschied, bzw. die Gemeinsamkeiten? - Nun kannst du es sicher in deinem Skript richtig verwenden.
Du hast mir ja Des mit "Reset" und so gemacht ...
[autoit]Do
GUICtrlSetData($Zeit1,@HOUR)
GUICtrlSetData($Zeit2,@MIN)
GUICtrlSetData($Zeit3,@SEC)
GUICtrlSetData($Zeit5,@HOUR)
GUICtrlSetData($Zeit6,@MIN)
GUICtrlSetData($Zeit7,@SEC)
$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
Ich hatte
[autoit]While 1
; Und
Case $BlaBlaBla
Nur wenn ich des mit "do" alles in Case umschreiben ...geht net .
Und umgekehrt geht auch net -.-
Wenn ich beides da lasse geht nur des mit Do.
"While 0" hab ich auch schon gemacht... Geht aber auch net.
Ich weiß das nur 1. geht , welches muss ich nehmen und welches muss ich dan umschreiben.....Du musst des net machen , kannst ja nur schreiben welches ich dan umschreiben muss , ich versuche es dann schon =)
hat wer anderes nen rat ?!
Na, Du bist gut. Wer soll da durchsteigen...
Ich bewundere BugFix schon die ganze Zeit (ich glaub der hat 'ne Super-Glaskugel ).
Bringe Dein Problem mal ordentlich auf den Punkt und schreib was nicht funktioniert oder anders (wie?) funktionieren soll. Ein "geht net" ist keine Fehlerbeschreibung!
Glaub ich auch xD
Ne nur BUGFIX hat mir ja ein AutoStopper da gemacht ....
Bei dem Letzen ist "Do" und "Until"
....davor war des aber nie ! da hatte ich nur "While 1" und Case hat so
nur anderes geht des net was BUGFIX gemacht hat