急急问:可不可以得到组件在屏幕上的相对位置(200分)

  • 主题发起人 主题发起人 mykai
  • 开始时间 开始时间
M

mykai

Unregistered / Unconfirmed
GUEST, unregistred user!
想在edit的下面弹出窗体,做帮助输入窗体
谢谢啦
 
Edit.ClientToScreen(Point(Edit.Left, Edit.Top));
 
(edit1.left,edit1.top+edit1.length)
 
form2.left:=form1.left+edit1.left;
form2.top:=form1.top+edit1.top+edit1.height+Form1.Height-Form1.ClientHeight;
也可以把Form1.Height-Form1.ClientHeight换成一个具体数值,大概要大于23
 
Edit.ClientToScreen(Point(Edit.Left, Edit.Top+Edit.height));
 
用TControl.ClientToScreen(const Point: TPoint): TPoint;可以搞定.
 
up to MilkRoad
 
解决了
原码
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
p : Tpoint;
x : integer;
y : integer;
begin
if key =13 then
begin
x := Edit1.Top+Edit1.height+form1.Top+23;
y := Edit1.Left+form1.Left;
p.x := x;
p.y := y;
edit1.ClientToScreen(p);
form2.Top :=p.x;
form2.Left := p.y;
form2.show;
end;

end;
效果不错
给分了
 
后退
顶部