************************************************** *-- Class: apitimer (e:\my work\foxpro\projects\gkktools\editors\classes\gkkapitimer.vcx) *-- ParentClass: label *-- BaseClass: label *-- Time Stamp: 05/04/11 12:09:09 PM * *-* API Timer limits #DEFINE USER_TIMER_MINIMUM 10 #DEFINE USER_TIMER_MAXIMUM 0x7FFFFFFF * DEFINE CLASS apitimer AS label AutoSize = .T. BackStyle = 0 Caption = "apiTimer" Height = 17 Visible = .F. Width = 51 *-- Numeric Timer ID timerid = 0 *-- Handle to Timer hwnd = 0 *-- Interval of timer; value assigned in seconds and displayed in milliseconds; default is 30min interval = 900000 Name = "apitimer" *-- Occurs when the Timer interval completes PROCEDURE ontimerinterval LPARAMETERS thWnd, tnMsg, twParam, tlParam RETURN 0 ENDPROC *-- Initializes the timer PROCEDURE initializetimer BINDEVENT(this.hWnd, WM_TIMER, This, 'OnTimerInterval') apiSetTimer(this.hWnd, this.TimerID, this.Interval, 0) ENDPROC *-- Clears the timer function PROCEDURE cleartimer apiKillTimer(this.hWnd, this.TimerID) UNBINDEVENTS(this.hWnd) ENDPROC PROCEDURE interval_assign LPARAMETERS tnInterval tnInterval = tnInterval * 1000 && Convert seconds to milli-seconds DO CASE CASE tnInterval < USER_TIMER_MINIMUM this.Interval = USER_TIMER_MINIMUM CASE tnInterval > USER_TIMER_MAXIMUM this.Interval = USER_TIMER_MAXIMUM OTHERWISE this.Interval = tnInterval ENDCASE ENDPROC PROCEDURE Destroy this.ClearTimer() ENDPROC PROCEDURE Init this.hWnd = thisform.hWnd ENDPROC ENDDEFINE * *-- EndDefine: apitimer **************************************************