怎样得到一个界面中按钮相对屏幕的Left和Top?(50分)

俊友

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样得到一个界面中按钮相对屏幕的Left和Top?
 
ClientToScreen
 
获取按钮ID,象窗体一样进行获取
 
button1.left
button1.top
不就是吗?
 
我想他的意思是任何一个程序中的吧
 
left: Form1.Left + Button1.Left;
Top: Form1.Top + Button1.Top;
 
var
p: TPoint;
begin
p := Point(Button1.Left, Button1.Top);
Windows.ClienttoScreen(handle,P);
//get the position in desktop.
//p.x和p.y就是了。
end;
 
如果你的按钮在 form1 上
procedure TForm1.Button2Click(Sender: TObject);
var
p:TPoint;
begin
p.x:=button1.Left;
p.y:=button1.Top;
p:=ClientToScreen(p);
showmessage(format('x=%d y=%d',[p.x,p.y]));
end;

如果你的按钮在 form的panel1上,相应语句改成:
p:=panel1.ClientToScreen(p);
 
多人接受答案了。
 
顶部