Мышь находится над управлением?
function IsMouseOverControl(Control: TWinControl): Boolean; var P: TPoint; begin GetCursorPos(P); Result := Assigned(Control) and IsWindow(Control.Handle) and (WindowFromPoint(P) = Control.Handle) end;
Общая функция, чтобы определить, находится ли мышь над управлением
function IsMouseOver (Control: TControl): boolean; var p: TPoint; begin { получаем абсолютные координаты } if GetCursorPos (p) then begin { преобразуем координаты относительно компонента } p := Control.ScreenToClient (p); { координаты над управлением? } Result := (p.x >= 0) and (p.x <= Control.Width) and (p.y >= 0) and (p.y <= Control.Height); end else { Этого не должно случиться, но кто знает?... } Result := false; end;
Комментарии