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

2 windows delphi

我正在尝试控制我的程序打开一个新窗口的位置的坐标,因为目前它们是彼此打开的.有没有人有一个如何做到这一点的工作示例?

Jos*_*ons 6

您始终可以手动设置.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;
Run Code Online (Sandbox Code Playgroud)

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

procedure TForm1.Button1Click(Sender: TObject);
var
  frm : TForm;
begin
  frm := TForm.Create(Self);
  frm.Show;
end;
Run Code Online (Sandbox Code Playgroud)

另外,不要忘记您可以使用内置的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;
Run Code Online (Sandbox Code Playgroud)