DruckenMister WongFacebook

Befindet sich die Maus über einem Control?

System Win9x, WinNT, Win2000, WinXP, Vista, Win7
Ab Delphi-Version Delphi 1
Letzte Änderung 28.09.2010

Diese Funktion gibt True zurück, wenn sich die Maus über dem angegebenen Control befindet. Die Funktion gibt allerdings auch True zurück, wenn das Control nicht sichtbar ist (Visible=False) oder von einem anderen Control ganz oder teilweise verdeckt wird.Ist ein Control nicht sichtbar, kann dieses mit Control.Visible abgefragt werden.


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) {AND Control.Visible};
  end
  else
    Result := False;
end;