gpt4 book ai didi

delphi - 单击控件时如何获取鼠标坐标?

转载 作者:行者123 更新时间:2023-12-03 14:37:59 25 4
gpt4 key购买 nike

在 TImage 的 OnClick 事件中,我想提取鼠标的 x,y 坐标。我更喜欢它们与图像的关系,但与表单或窗口的关系也同样好。

最佳答案

Mouse.CursorPos 包含 TPoint,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 := Image1.ScreenToClient(pt);
// now have Image position
Label2.Caption := 'X = '+IntToStr(pt.x)+', Y = '+IntToStr(pt.y);
end;

注意:如果您在 ScreenToClient 方法中省略“Image1”,它将引用表单。

关于delphi - 单击控件时如何获取鼠标坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/826914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com