Mouse - descobrir se esta sobre um controle

Top  Previous  Next

// Os exemplos abaixo verificam se o cursor do mouse está em Button1:

 

// Solução 1:

var

  Pt : TPoint;

  Rct: TRect;

begin

  GetCursorPos(Pt);

  GetWindowRect(Button1.Handle, Rct);

  if PtInRect(Rct, Pt) then

    Caption := 'Está no botão'

  else

    Caption := 'NÃO Está no botão';

end;

 

// Solução 2:

var

  Pt: TPoint;

begin

  GetCursorPos(Pt);

  if WindowFromPoint(Pt) = Button1.Handle then

    Caption := 'Está no botão'

  else

    Caption := 'NÃO Está no botão';

end;

 

 

// Observações:

// A API GetWindowRect obtém o retângulo (TRect) ocupado por uma janela.

// Podemos usar GetClientRect para obter o somente da parte cliente da janela.

// Podemos também usar a propriedade BoundsRect que existe na maioria dos

// componentes visuais, ou mesmo informar