Frage...Inputbox Countdown ins Label ...

    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

    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

    [/autoit]
  • Spoiler anzeigen
    [autoit]

    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

    [/autoit]

    Geht net....

    • Offizieller Beitrag

    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

    Spoiler anzeigen
    [autoit]

    #include <guiconstants.au3>
    #include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    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()

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit]
  • Ich bins wieder >_>

    Bei deinem war ja des ....

    Spoiler anzeigen
    [autoit]

    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

    [/autoit]

    Bei neinem war "While1" und Case

    Spoiler anzeigen
    [autoit]

    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

    [/autoit]

    Beides geht nicht....Es geht nur eis (hab ich schon probiert) was muss ich wo rein machen das beides geht ?!

    • Offizieller Beitrag

    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 <-

    • Offizieller Beitrag

    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:

    [autoit]

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then Exit
    WEnd
    ; oder
    Do
    $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]


    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)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $msg = GUIGetMsg()
    _SetCounter()

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]




    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

    [/autoit]

    Ich hatte

    [autoit]

    While 1
    ; Und
    Case $BlaBlaBla

    [/autoit]

    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 =)

  • 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 ;)