Если вам нужно положение курсора, когда они щелкают по элементу управления, тогда используйте Mouse.CursorPos
, чтобы получить положение мыши, и Control.ScreenToClient
, чтобы преобразовать это в положение относительно элемента управления.
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
pt: TPoint;
begin
pt := Mouse.CursorPos;
pt := Memo1.ScreenToClient(pt);
Memo1.Lines.Add(Format('x=%d, y=%d', [pt.X, pt.y]));
end;
РЕДАКТИРОВАТЬ:
Как отмечали разные люди, это бессмысленно для события мыши вниз.Однако, поскольку TCustomControl.OnMouseDown
защищен, он не всегда может быть легко доступен на сторонних элементах управления - учтите, что я, вероятно, не использовал бы элемент управления с таким недостатком.
Лучшим примером может быть событие OnDblClick,где нет информации о координатах:
procedure TForm1.DodgyControl1DblClick(Sender: TObject);
var
pt: TPoint;
begin
pt := Mouse.CursorPos;
pt := DodgyControl1.ScreenToClient(pt);
Memo1.Lines.Add(Format('x=%d, y=%d', [pt.X, pt.y]));
end;