我正在尝试控制程序在新窗口中打开的位置的坐标,因为当前它们正在彼此打开。有没有人有一个可行的例子来做到这一点?

最佳答案

您始终可以手动设置.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;

关于windows - 在Delphi 2006中控制新打开的窗口的位置(x,y),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/382152/

10-10 13:30