控制Delphi 2006中新打开窗口的位置(x,y)

我试图控制我的程序在哪里打开一个新窗口的坐标,因为目前他们打开对方的ontop。 有没有人有一个如何做到这一点的工作示例?

您可以随时手动设置.Top和.Left属性,如下所示:

procedure TForm1.Button1Click(Sender: TObject); var frm : TForm; begin frm := TForm.Create(Self); frm.Left := 100; //replace with some integer variable frm.Top := 100; //replace with some integer variable frm.Show; end; 

但是,Windows有一个默认的窗口放置算法,试图保持每个窗口的标题栏可见。 在我的电脑上,重复点击这个Button1程序给出了很好的堆叠窗口:

 procedure TForm1.Button1Click(Sender: TObject); var frm : TForm; begin frm := TForm.Create(Self); frm.Show; end; 

此外,不要忘记,你可以使用内置的TPosition位置集:

 procedure TForm1.Button1Click(Sender: TObject); var frm : TForm; begin frm := TForm.Create(Self); frm.Position := poOwnerFormCenter; { Other possible values: TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter, poDesktopCenter, poMainFormCenter, poOwnerFormCenter); //} frm.Show; end; 

这个类型的功能已经在C的另一个问题上解释了。

另外,对于Delphi,请查看Delphi中的了解和使用Windows回调函数 ,该函数描述了获取当前打开的窗口的句柄。 从Delphi代码中看到一个窗口(窗体),它描述了如何在窗口移动后移动窗口。