Charlie,
>I don't understand. SYS(1270), a truely great function, returns an Object Ref to the object the mouse is over. If the mouse is above THIS, I know the user didn't click to move. But if it isn't, I don't. If it's above another control I don't know much of anything. Are you saying test for MDOWN() if the LostFocus() or Valid(), then get the object ref? That doesn't work reliably on a quick click. Please explain.>
You don't need to check for MDOWN() at the point the Valid() fires, you can check the return value of SYS(1270) and compare it to another object reference to see if they are the same.
For example, if I create a form where the user must enter a value before they leave a textbox, it would be nice if I let the user leave the textbox if they have clicked on the form's Cancel() button. I can place code in the valid of the textbox that checks to see if SYS(1270) is equal to ThisForm.cmdCancel, and if so, let them leave the textbox.
Regards,
Kevin McNeish
Eight-Time .NET MVP
VFP and iOS Author, Speaker & Trainer
Oak Leaf Enterprises, Inc.
Chief Architect, MM Framework
http://www.oakleafsd.com