function getscreenpoint(sender: Tcontrol): Tpoint;
var
clientpoint:Tpoint;
begin
clientpoint:=point(0,sender.Height);
while sender.Parent<>nil do
begin
clientpoint:=point(sender.Left+clientpoint.X,sender.Top+clientpoint.Y);
sender:=sender.Parent;
end;
clientpoint:=sender.ClientToScreen(clientpoint);
Result:=clientpoint;
end;
var
clientpoint:Tpoint;
begin
clientpoint:=point(0,sender.Height);
while sender.Parent<>nil do
begin
clientpoint:=point(sender.Left+clientpoint.X,sender.Top+clientpoint.Y);
sender:=sender.Parent;
end;
clientpoint:=sender.ClientToScreen(clientpoint);
Result:=clientpoint;
end;
本文介绍了一个用于计算控件在屏幕上的绝对位置的函数。通过递归遍历控件及其父控件的位置信息,最终获得该控件相对于屏幕左上角的坐标。

1245

被折叠的 条评论
为什么被折叠?



