devxlogo

Quick Timer Control Replacement

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 _			timerProcOnce)	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)		m_cb.cbTimer	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 stuffEnd Sub

You can also use the function on forms instead of the intrinsic Timer control.

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist