Sign in to follow this  
Followers 0
mexykanu

Any way to pause a timer ?

8 posts in this topic

#1 ·  Posted (edited)

Hi,

I'm trying to find a way to pause a timer ( TimerInit() ) but haven't been successfull so far ... i've tried searching the forums but i couldn't find anything that could help me.

The script is supposed to be a stopwatch, I'm currently using AdlibEnable to start the timer and AdlibDisable() to stop updating the labels, but i can't find a solution for pausing the timer itself.

Any help will be apreciated :). Thank you for reading. :P

P.S.: Adlib() is the only way i can get the script to work. (so far)

Edited by mexykanu

Share this post


Link to post
Share on other sites



#3 ·  Posted (edited)

Why don't you just start and stop it and memorize (in a var ofc :) ) and finally add all the ms's together?

For examples:

Edit: This one is a better examples to restart a timerinit (like its started again)

Dim $timer, $difference = 0

$timer = TimerInit()
Sleep(500) ; Stop 1
$difference = $difference + TimerDiff($timer)
$timer = TimerInit()
Sleep(243) ; Stop 2
$difference = $difference + TimerDiff($timer)
$timer = TimerInit()
Sleep(600) ; Stop 3
$difference = $difference + TimerDiff($timer)

MsgBox(0,"",$difference)
Edited by Triblade

My active project(s): A-maze-ing generator (generates a maze)

My archived project(s): Pong3 (Multi-pinger)

Share this post


Link to post
Share on other sites

The script will simulate a Stopwatch.

Here's what i'm trying to do:

; A. The function that starts the stopwatch
Func start_timer()
    $Init0 = TimerInit()
    AdlibEnable("show_timer",60)
EndFunc

; B. The function that pauses the stopwatch
Func pause_timer()
    AdlibDisable()
EndFunc

; A. The function that resumes the stopwatch
Func resume_timer()
    AdlibEnable("show_timer",60)
EndFunc

Func show_timer()
    
           ;Seconds [Read] String (From the timer)
    $secz = StringFormat("%.2f", TimerDiff($Init0)/1000)
    $seconds_time=StringSplit($secz,"."); Seconds > GUI
    $milisec_time=StringSplit($secz,"."); Milisec > GUI
    
            GUICtrlSetData($seconds_disp,$seconds_time[1]); Place Seconds into GUI ctrl
    GUICtrlSetData($milisec_disp,$milisec_time[2]); Place Milisec into GUI ctrl

; Script for transforming seconds into minutes
    $minz = StringFormat("%.1f", $seconds_time[1]/60) 
    $minutes_value=StringSplit($minz,".")
    GUICtrlSetData($minutes_disp,$minutes_value[1])
EndFunc

I'm trying to get the Func pause_timer() to pause the TimerInit() function, so that when i press the Resume button, the stopwatch will continue from where it was paused :)

Share this post


Link to post
Share on other sites

Thank you Triblade, i will try and see if i'll get it to work :)

Share this post


Link to post
Share on other sites

I just finished messing up your code :)

Dim $Init0, $remember = 0

start_timer()
Sleep(500)
pause_timer()
sleep(100)
resume_timer()
sleep(100)
msgbox(0,"",$remember + Timerdiff($Init0))

; A. The function that starts the stopwatch
Func start_timer()
    $Init0 = TimerInit()
    ;AdlibEnable("show_timer",60)
EndFunc

; B. The function that pauses the stopwatch
Func pause_timer()
    ;AdlibDisable()
    $remember += TimerDiff($Init0)
EndFunc

; A. The function that resumes the stopwatch
Func resume_timer()
    ;AdlibEnable("show_timer",60)
    $Init0 = TimerInit()
EndFunc

My active project(s): A-maze-ing generator (generates a maze)

My archived project(s): Pong3 (Multi-pinger)

Share this post


Link to post
Share on other sites

HotKeySet("^v","Start_timer")
HotKeySet("^c","Pause_timer")
HotKeySet("^b","Resume_timer")
Global $PausedTimer
Global $Init0
while 1 
WEnd

; A. The function that starts the stopwatch
Func start_timer()
    $Init0 = TimerInit()
    AdlibEnable("show_timer",60)
EndFunc

; B. The function that pauses the stopwatch
Func pause_timer()
    AdlibDisable()
    $PausedTimer = TimerInit()
EndFunc

; A. The function that resumes the stopwatch
Func resume_timer()
    AdlibEnable("show_timer",60)
    $Init0 = $Init0 + TimerDiff($PausedTimer) * 3600
EndFunc

Func show_timer()
    consoleWrite(@CRLF & Floor(TimerDiff($Init0)/100))

Simple...


You can help! Donate to AutoIt! or, visit ClimatePREDICTION.netMy posts:Travian Bot Example (100+ servers) BETAHow to Host you code/app for free! (unlimited team number) (Public or Private)"Sir, we're surrounded!" "Excellent. We can attack in any direction!"

Share this post


Link to post
Share on other sites

Thank you all for the quick replies :)

Triblade's first reply solved my issue.

Thank you again :P

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0