
嗨,我有3个由表格组成的面板.我将点击事件分配给第3个面板以获取坐标.
procedure TformMain.Panel3Click(Sender: TObject);
var
pt : tPoint;
begin
pt := Mouse.CursorPos;
ShowMessage('X : ' + IntToStr(pt.X) + ' & Y : ' + IntToStr(pt.Y));
end;
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但我不知道如何使用Y coord.从面板3的开头开始.我的意思是当我点击panel3的顶部时,它的坐标必须为0.
谢谢你的建议.
ps:我的表单有一个主菜单,所以我试图从pt.y中减去panel1的高度,但我无法获得主菜单的高度.
为什么不使用OnMouseDown事件和OnMouseUp事件.
相反的OnClick事件,已经为您提供X,Y鼠标点击/释放的坐标,而不是与像特殊键使用鼠标左键哪些信息和状态提及Shift,CTRL和ALT.
有关这些事件提供的信息的更好说明,请查看TMouseEvent文档.