Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

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 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.

 

 

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