I cannot figure out how to start a timer right after another timer completes. The sample projects for timers and the docs don’t cover this (that I could find).
Basically, I have a countdown timer that counts down from a variable amount. Once it’s done, another timer should start up, which the user will then cancel at some point with a button click.
I’ve got the first timer running fine. Whenever I try to add the second timer, all heck breaks loose. X)
How are you currently doing this? With Timers on a view, instantiating timers and using AddressOf, or by using Timer.CallLater? What code are you using within TimerA to start TimerB? What is the issue you’re seeing?
Currently, I have a timer associated (attached) to a Window. I am calling
CountdownTimer.Reset
to get it going.
The code inside simply counts down from an initial value derived from an on-window label and displays that result, down to zero, at which time it displays “Go!” Then it should start counting up.
The way I’m doing it now is I have a boolean called useCountdown set to True when CountdownTimer.Reset is first called. After the countdown reaches zero, I set that to false, and another part of the code now starts counting up… fortunately, they both use a 1000ms interval.
Is there a better way to accomplish this?
As of now, I’m having a problem when I re-trigger the Timer. It starts to countdown the second time, but halts after a second or two. But, that is less important than getting the actual usage of multiple timers correct in the first place.
Guessing at what your code looks like, I created a Window with the following properties:
useCountdown as Boolean = True
valueTime1 as Integer
valueTime2 as Integer
The following controls:
CountdownTimer as Timer
PushButton1 as PushButton
Time1 as Label
Time2 as Label
I have CountdownTimer’s properties set as follows:
Run Mode = Off
Period = 1000
In Timer1.Action I have the following:
[code]if useCountdown then
valueTime1 = valueTime1 - 1
if valueTime1 = 0 then
useCountdown = False
end if
elseif not useCountdown then
valueTime2 = valueTime2 - 1
if valueTime2 = 0 then
CountdownTimer.mode = 0
end if
end if