Runterzählen im Tooltip inkl Std, Min und Sec. Angabe.

  • Hi, mal wieder eher eine Frage als ein Problem, den Counter zu machen ist kein Problem, allerdings hätte ich anstatt nur einer Sekundenanzeige, eine Std, Min und Sekunden-Anzeige.

    Sprich anstatt > 3700 Sek verbleiben. >>> 1 Std.; 1 Min.; 40 Sek. verbleiben.

    Und so sah das bis jetzt aus:

    Spoiler anzeigen
    [autoit]

    $Zeit = iniread("test.ini", "Counter", "Zeit", "")
    $11 = iniread("test.ini", "MSG", "11", "")

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

    For $i = $Zeit To 1 Step -1
    ToolTip($11 & " " & $i & " sek.)", 1, 1)
    Sleep(1000)
    Next
    ;- [...]

    [/autoit]

    Hoffe jemand kann mir einen Rat geben.

    Edit: Bitte keine Funktion, der Counter soll in einer Funktion verbaut werden, brauche eine For - Schleife (soweit ich weis xD)
    Sobald der Counter auf 0 (sec) fällt soll die nächste Aktion ausgeführt werden. THX

    Thx > MFG*

    Einmal editiert, zuletzt von vism (12. Dezember 2010 um 17:22)

  • Hi,
    ich hab dir mal schnell das gebaut.

    Spoiler anzeigen
    [autoit]

    ConsoleWrite(Sekunden2Time(500*10) & @CRLF)

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

    Func Sekunden2Time($iSek)
    Local $Sek = 0, $Min = 0 , $Stunde = 0
    $Min = Mod($iSek, 3600)
    $Stunde = $iSek
    $Stunde -= $Min
    $Stunde /= 3600

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

    $Sek = Mod($Min, 60)
    $Min -= $Sek
    $Min /= 60

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

    If $Stunde = 0 Then
    Return $Min & " Min. ; " & $Sek & " Sek."
    Else
    Return $Stunde & " Std. ; " & $Min & "Min. ; " & $Sek & " Sek."
    EndIf
    EndFunc ;==>Sekunden2Time

    [/autoit]
  • Hab auch noch was :D

    Spoiler anzeigen
    [autoit]

    Global $Zeit = IniRead("test.ini", "Counter", "Zeit", "13700")
    ;~ $11 = iniread("test.ini", "MSG", "11", "")

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

    HotKeySet("{Esc}", "_Exit")

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

    Local $h, $m, $s

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

    AdlibRegister("_Count", 1000)

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

    While 1
    Sleep(20000)
    WEnd

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

    Func _Count()
    $h = Floor($Zeit / 3600)
    $m = Floor(Mod($Zeit, 3600) / 60)
    $s = $Zeit - $h * 3600 - $m * 60

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

    ToolTip(StringFormat("%i Stunden, %i Minuten, %i Sekunden", $h, $m, $s))
    $Zeit -= 1
    EndFunc ;==>_Count

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

    [/autoit]
  • Erstmal danke an alle, ich hab mich jetzt für das Script von funkey entschieden, hab jetzt allerdings eine Frage, so funktioniert des alles bestens, doch es soll eine Aktion ausgeführt werden nachdem der Coutner auf 1 schlägt. Wie mache ich das nun? Finde den Einsprungspunkt nicht, wo der ich weitere Befehle anhänge. =(

  • So:

    Spoiler anzeigen
    [autoit]

    Global $Zeit = IniRead("test.ini", "Counter", "Zeit", "10")
    ;~ $11 = iniread("test.ini", "MSG", "11", "")

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

    HotKeySet("{Esc}", "_Exit")

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

    Local $h, $m, $s

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

    AdlibRegister("_Count", 1000)

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

    While 1
    Sleep(20000)
    WEnd

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

    Func _Count()
    $h = Floor($Zeit / 3600)
    $m = Floor(Mod($Zeit, 3600) / 60)
    $s = $Zeit - $h * 3600 - $m * 60

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

    ToolTip(StringFormat("%i Stunden, %i Minuten, %i Sekunden", $h, $m, $s))
    If $Zeit = 0 Then
    MsgBox(64, "Zeit vorbei", "Der Coountdown ist abgelaufen!")
    _Exit()
    EndIf
    $Zeit -= 1
    EndFunc ;==>_Count

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

    [/autoit]