The attached demo shows (on Windows - did not test others...) that the OnMouseEnter/Leave events fire whenever the mouse enters/leaves a form or a control, but only the top-most control is considered. This means that when a control covers the form fully (like the memo in the demo after the checkbox has been checked) these events of the form do not fire any more when the mouse is moved into/out of the form horizontally. Only the OnUserInput event of the ApplicationProperties fire whenever the mouse is inside the form, it is some kind of "super-OnMouseMove".