본문 바로가기
Delphi Tip/+Tip

마우스커서가 폼(Form)안에 있는지 여부

by MonoSoft 2024. 1. 8.
728x90
반응형

마우스커서가 폼(Form)안에 있는지 여부

728x90

 

 

 

 

 

//API함수 이용 (핸들을 잡아 마우스가 사각형안에 있는지 체크)

 

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

 

type

  TForm1 = class(TForm)

    procedure FormDeactivate(Sender: TObject);

    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.DFM}

 

procedure TForm1.FormDeactivate(Sender: TObject);

begin

  ReleaseCapture;

end;

 

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

begin

  If GetCapture = 0 then SetCapture(Form1.Handle);

  if PtInRect(Rect(Form1.Left, Form1.Top,Form1.Left + Form1.Width, Form1.Top + Form1.Height),   

                    ClientToScreen(Point(x, y))) then

    Form1.Caption := 'Mouse is over form' else Form1.Caption := 'Mouse is outside of form';

end;

 

end.

 

728x90
반응형

댓글