Hi Mike
I solve this by creating a new class based on the timer class and adding it to my vcx. Then in my timer class I add whatever code I need. Then in your program somewhere use mytimerobj = createobject("mytimer"). Now your timer is 'free' of any form.
The variable you assign the timer object to must be scoped to the entire session where you need it. I instanciate the timer in my main program so that it is always in scope.
One word of warning: if VFP is busy processing something then the timer will not fire until processing stops.
In the End, we will remember not the words of our enemies, but the silence of our friends - Martin Luther King, Jr.