devxlogo

Allow Interval Greater Than Timer Controls

Allow Interval Greater Than Timer Controls

When you need a timer for a larger interval than the Timer control allows, insert this code into a BAS module. The procedure starts when the timer interval has passed:

 Dim lTimerId As LongPrivate Declare Function SetTimer Lib "user32" _(ByVal hWnd As Long, ByVal nIDEvent As _Long, ByVal uElapse As Long, ByVal _lpTimerFunc As Long) As LongPrivate Declare Function KillTimer Lib _"user32" (ByVal hWnd As Long, ByVal _nIDEvent As Long) As LongPrivate Sub TimerProc(ByVal lHwnd As Long, _ByVal lMsg As Long, ByVal lTimerId As Long, _ByVal lTime As Long)Dim lResult As LonglResult = StopTimer(lTimerId)Call InsertYourProcessNameHere'code to be executed after intervalEnd SubPublic Sub StartTimer(lInterval As Long) _'convert interval to milliseconds prior to'passinglTimerId = SetTimer(0, 0, lInterval, _AddressOf TimerProc)End SubPublic Function StopTimer(lTimerId As Long) _As Long'must pass the TimerId returned by SetTimerStopTimer = KillTimer(0, lTimerId)End FunctionThis call executes the procedure:Call StartTimer(5000) '5 seconds

You can stop the timer before the interval by calling the StopTimer function.

devx-admin

Share the Post: