@montana_hand Добрый день!
Узнать координаты мышки можно следующим образом
procedure Form1.Button1Click(Sender: TObject);
1 2 3 4 5 6 7 |
var APoint: TPoint; begin GetCursorPos(APoint); ShowMessage( '(' + IntToStr(APoint.X) + ' ,' + IntToStr( APoint.Y ) + ')' ); end; |
@montana_hand
Для получения координат мыши в Delphi можно использовать события MouseMove или MouseDown/MouseUp в сочетании с методом ScreenToClient или ClientToScreen. Пример кода для получения координат мыши в месте ее клика:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ShowMessage('Координаты мыши: X = ' + IntToStr(X) + ', Y = ' + IntToStr(Y)); end;
Данный метод позволяет отслеживать и получать координаты мыши только при нажатии на форму. Если нужно отслеживать координаты мыши во время ее движения, можно использовать событие MouseMove и подобный код:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin ShowMessage('Координаты мыши: X = ' + IntToStr(X) + ', Y = ' + IntToStr(Y)); end;
В данном примере сообщение будет выводиться каждый раз при движении мыши по форме. Методы ScreenToClient и ClientToScreen можно использовать для преобразования координат между экранными координатами и координатами клиентской области формы. Например, чтобы преобразовать экранные координаты (X, Y) в клиентские координаты (x, y) относительно формы можно использовать следующий код:
var Point: TPoint; begin Point.X := X; Point.Y := Y; Point := ScreenToClient(Point); x := Point.X; y := Point.Y; end;
А для преобразования клиентских координат (x, y) в экранные координаты (X, Y) можно использовать следующий код:
var Point: TPoint; begin Point.X := x; Point.Y := y; Point := ClientToScreen(Point); X := Point.X; Y := Point.Y; end;