Counter hört früher auf als er sollte

  • Hallo,

    Könnte mir einer Bitte sagen warum die Zeit Anzeige nicht richtig Angezeigt wird?

    Spoiler anzeigen
    [autoit]


    _Wartezeit(900000)

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

    Func _Wartezeit($time)
    $tstart = TimerInit()
    Do
    ToolTip("Die Maus bewegt sich in : " & $time / 1000 & " sec", 0, 0)
    Sleep(1000)
    $time -= 1000
    Until TimerDiff($tstart) >= $time
    ToolTip("Weiter") ; wird nicht angezeigt
    EndFunc

    [/autoit]

    Er fängt bei 900 sek. an zu Zählen und sollte bis 0 runter Zählen, aber bei ca: 638 sek. fängt er wieder von Vorne an.

    mfg

    Einmal editiert, zuletzt von Muffel (25. September 2012 um 18:36)

  • Es wird schon angezeit, aber nur ganz kurz weil sich das Script dann sofort beendet.
    Um den ToolTip wieder zu entfernen einfach: ToolTip("") nutzen.

    [autoit]

    _Wartezeit(900000)
    Sleep(5000) ; <--- damit man es 5 Sekunden lang sieht

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

    Func _Wartezeit($time)
    $tstart = TimerInit()
    Do
    ToolTip("Die Maus bewegt sich in : " & $time / 1000 & " sec", 0, 0)
    Sleep(1000)
    $time -= 1000
    Until TimerDiff($tstart) >= $time
    ToolTip("Weiter")
    EndFunc

    [/autoit]

    Sind TV-Quizfragen zu einfach? A) Ja B) Harry Potter

    Spoiler anzeigen

    Ich gebe zu dieser Post hat wahrscheinlich nicht viel geholfen,
    aber ich versuche wenigstens zu helfen :rolleyes:

  • sicher das das dann bei 638 sekunden aufhört? :D da du $timer immer um 1000 verringerst und dann mit Timediff() abgleichst wird timediff() bereits nach der hälfte der gewollten ziet größer sein und die schleife beendet sich ;)

    habs mit

    [autoit]

    _Wartezeit(90000)

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

    Func _Wartezeit($time)
    $tstart = TimerInit()
    Do
    ToolTip("Die Maus bewegt sich in : " & $time / 1000 & " sec", 0, 0)
    Sleep(1000)
    $time -= 1000
    Until TimerDiff($tstart) >= $time
    ToolTip("Weiter") ; wird nicht angezeigt
    Sleep(2000)
    EndFunc

    [/autoit]


    geteste ;) da ich nicht 900 sekunden warten wollte, habe ich einfach 90 sekunden genommen :) und da hört es dann nach 45 sekunden (also die hälfte auf) ;)

  • Natürlich ist das Regelkonform. Und sogar sehr sinvoll! Ich finde das sieht viel besser aus als $time = $time - 1. Aber RedHead hat natürlich recht. Hier macht keines von beiden Sinn ;)

    Gruss Shadowigor

  • Da hast du wohl Recht...ich hab bei meinem AutoIt-Einstieg Wochen (wenn nicht sogar Monate) gebraucht bis ich nicht mehr  $variable++ oder $variable-- geschrieben habe :D Allerdings hätte ich das gerne gewusst BEVOR ich mir dieses umständliche $variable = $variable + 1 eingeprügelt habe

    Bild1: Ich beim debuggen

  • Danke für die Zahlreichen und Interessanten Berichte ;) ich habe(aber nicht alleine, bin zu Änfängerhaft und schau meist noch auf das Falsche) gelöst:

    [autoit]


    _Wartezeit(10000)
    Func _Wartezeit($time)
    $tstart = TimerInit()
    $stime = $time ; hier lag der Fehler
    Do
    ToolTip("Die Maus bewegt sich in : " & $stime / 1000 & " sec", 0, 0)
    Sleep(1000)
    $stime -= 1000
    Until TimerDiff($tstart) >= $time
    ToolTip("Die Maus bewegt sich ", 0, 0)
    EndFunc

    [/autoit]

    :rock: <-- besser kann ich es auch nicht Ausdrücken

  • du kannst es aber auch so machen ;) sind jetzt aber nur 9 sekunden ;)

    [autoit]

    _Wartezeit(9000)

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

    Func _Wartezeit($time)

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

    For $i = $time/1000 To 1 Step - 1
    ToolTip("Die Maus bewegt sich in : " & $i & " sec", 0, 0)
    Sleep(1000)
    Next
    ToolTip("Weiter...")
    Sleep(5000)
    EndFunc

    [/autoit]