>CB>>>You could use a timer class with a custom property tLastActivity to store datetime of last activity. If no activity for a given period its timer event would call form(set) release after a cleanup.
>
>PM>>Or, just call the reset() method of the timer for the appropriate form events (mousemove, gotfocus, click, etc...). This should work the same, no?
>
>CB>If you use a menu, I think it would be easier to use skipfor (just timer.reset and return .t. on a pad). Because that would prevent to add code to so many controls and called as often as necessary (with every refresh at least AFAIK).
>
>I'm a novice, but wouldn't one have to populate the tLastActivity in a similar fashion? I was suggesting monitoring the form (or VFP deskop?) for activity as opposed to individual controls. Wouldn't this work?
>
>Paul M.
Paul,
Of course would work. But at least you would add code to many controls (subclassed - still would mean more than one control to place and be sure placed) to call that timer.reset. Menu skipfor is a good place instead because automatically called very often. You could use "on key" and "on mouse" as well but they would cause a lot of interruption. Also you could use chrsaw() instead of timer but implementation seems harder to me. Another one keypress + keypreview of form. Really didn't hack much for I didn't need one yet (only did one to check if rlocked by another user).
Cetin