Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Feb 24, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Quick Timer Control Replacement

Timer controls can be practical when you need to add a small delay in program execution. However, if you need the delay in a class module (instead of on a form), the actual control can be hard to get at. Instead, use these functions in a single code module:
Option Explicit

	Private Declare Function SetTimer Lib "user32" (ByVal _
		hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse _
		As Long, ByVal lpTimerFunc As Long) As Long
	Private Declare Function KillTimer Lib "user32" (ByVal _
		hWnd As Long, ByVal nIDEvent As Long) As Long

	Private m_cb As Object

	Public Function timerSet(lTime As Long, cb As Object) _
		As Long
		Set m_cb = cb
		timerSet = SetTimer(0, 0, lTime, AddressOf _
	End Function

	Private Sub timerProcOnce(ByVal lHwnd As Long, ByVal _
		lMsg As Long, ByVal lTimerID As Long, ByVal lTime _
		As Long)

		On Error Resume Next
		Call KillTimer(0, lTimerID)
	End Sub
The class module then calls the function like this:
	timerSet 10, Me
After 10 milliseconds, the code triggers the cbTimer method in the class module:
Public Sub cbTimer()
	' Do some stuff
End Sub
You can also use the function on forms instead of the intrinsic Timer control.
Bo Larsson
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date