가장 간단한 방법은 OnMouseDown, OnMouseMove, OnMouseUp 이벤트를 이용하시는 방법입니다.
파라미터 X, Y로 현재 컴포넌트에서의 마우스 위치가 전달됩니다.
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
CurPos, PanelPos : TPoint;
begin
// X, Y 파라미터를 이용한 방법
Panel1.Caption := Format( 'X:%d Y:%d', [ X, Y ] );
// 현재 커서위치에서 해당 컨트롤의 위치를 뺌으로써 알아내는 방법
GetCursorPos( CurPos );
PanelPos := Panel1.ClientToScreen( Point( 0, 0 ) );
Label3.Caption := Format( 'X:%d Y:%d', [ CurPos.X - PanelPos.X, CurPos.Y - PanelPos.Y ] );
end;
가장 간단한 방법은 OnMouseDown, OnMouseMove, OnMouseUp 이벤트를 이용하시는 방법입니다.
파라미터 X, Y로 현재 컴포넌트에서의 마우스 위치가 전달됩니다.
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
CurPos, PanelPos : TPoint;
begin
// X, Y 파라미터를 이용한 방법
Panel1.Caption := Format( 'X:%d Y:%d', [ X, Y ] );
// 현재 커서위치에서 해당 컨트롤의 위치를 뺌으로써 알아내는 방법
GetCursorPos( CurPos );
PanelPos := Panel1.ClientToScreen( Point( 0, 0 ) );
Label3.Caption := Format( 'X:%d Y:%d', [ CurPos.X - PanelPos.X, CurPos.Y - PanelPos.Y ] );
end;
다른 방법으로는 WM_MOUSEMOVE 메시지를 이용한 방법이 있습니다.
편한 방법을 사용하세요.