CLEAR PUBLIC oForm oForm = CREATEOBJECT('MyForm') oForm.Visible = .T. DEFINE CLASS MyForm As Form Autocenter = .T. MessageBoxShown = .F. StoredSeconds = 0 ADD OBJECT Timer1 As Timer PROCEDURE Activate WITH THIS IF NOT .MessageBoxShown .MessageBoxShown = .T. .StoredSeconds = SECONDS() .Timer1.Interval = 500 .WriteStr('INKEY fires...') = INKEY(2) && 2 seconds .WriteStr('SLEEP fires...') DECLARE Sleep IN kernel32 INTEGER dwMilliseconds = Sleep(2000) && 2 seconds .WriteStr('MESSAGEBOX fires...') = MESSAGEBOX(VERSION()) .WriteStr('MESSAGEBOX exited') ENDIF ENDWITH PROCEDURE WriteStr(vValue) ACTIVATE SCREEN ? vValue PROCEDURE Timer1.Timer nNewSeconds = SECONDS() ThisForm.WriteStr(nNewSeconds - ThisForm.StoredSeconds) ThisForm.StoredSeconds = nNewSeconds ENDDEFINE