如何可知道当前控件在屏幕中的位置(Left,Top),而不是在其Parent中的位置? button1.left:=form1.left+button1.left;button1.top:=form1.left+button1.top; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 噢错了,第二句应该是button1.top:=form1.top+button1.top; p, CP:TPoint ;begin dc := GetWindowDC(0); p.x:= button1.Left; p.y:= button1.Top; CP:= ClientToScreen(p); procedure TForm1.Button1Click(Sender: TObject);var p: Tpoint;begin P := Button1.Parent.ClientToScreen(Point(Button1.Left, Button1.Top)); ShowMessage(IntToStr(p.X) + '..' + IntToStr(p.Y));end; zswang(伴水)(伤心中):GetWindowPos()?好像没有这个函数 这些控件一般都有clienttoscreen和screentoclient两个方法进行相关的操作。 var vRect: TRect;begin GetWindowRect(Button1.Handle, vRect);(* vRect.Left vRect.Top*)end; 我的方法不是最好的如果是SpeedButton、Image这种非Win控件就不行因为没有Handle了 谢谢大家的热心帮助,特别感谢zswang(伴水)(伤心中)的热心,结贴了. 条条小路通厕所,散分贴 关于"窗体"和"ocx"(给点建议) 报表打印自定义纸张问题??? 谁有〈DELPHI串口及语音传真高级编程〉这本书的电子版或TurboPower控件的详细介绍及使用方法 函数参数设置! Delphi 7.0或6.0有中文版吗? 屏幕显示跟自己同样大小的固定窗体的时候,怎么达到最大化效果? 求: delphi程序设计规范 高分-请献计献策-关于用键盘上的方向键来改变控件焦点的问题 请问这样的sql查询在access数据库如何实现? 其他应用程序中,得到焦点的控件(如edit,compobox)的句柄如何得到! nil 是不是相当于C++的NULL
begin
dc := GetWindowDC(0);
p.x:= button1.Left;
p.y:= button1.Top;
CP:= ClientToScreen(p);
var
p: Tpoint;
begin
P := Button1.Parent.ClientToScreen(Point(Button1.Left, Button1.Top));
ShowMessage(IntToStr(p.X) + '..' + IntToStr(p.Y));
end;
GetWindowPos()?好像没有这个函数
vRect: TRect;
begin
GetWindowRect(Button1.Handle, vRect);
(*
vRect.Left
vRect.Top
*)
end;
如果是SpeedButton、Image这种非Win控件就不行
因为没有Handle了