一千萬個為什麽

搜索

點擊控件時如何獲得鼠標的坐標?

在TImage的OnClick事件中,我想提取鼠標的x,y坐標。我更喜歡它們與圖像有關,但是與窗體或窗體相關的內容同樣好。

最佳答案

Mouse.CursorPos包含TPoint,它又包含X和Y位置。該值位於全局坐標中,因此您可以使用ScreenToClient例程翻譯您的表單,該例程將屏幕坐標轉換為窗口坐標。

根據Delphi幫助文件,Windows.GetCursorPos可能會失敗,如果失敗,Mouse.CursorPos會將其包裝為引發EOsException。

var
  pt : tPoint;
begin
  pt := Mouse.CursorPos; 
 //now have SCREEN position
  Label1.Caption := 'X = '+IntToStr(pt.x)+', Y = '+IntToStr(pt.y);
  pt := ScreenToClient(pt);
 //now have FORM position
  Label2.Caption := 'X = '+IntToStr(pt.x)+', Y = '+IntToStr(pt.y);
end;

轉載註明原文: 點擊控件時如何獲得鼠標的坐標?