我正在尝试控制程序在新窗口中打开的位置的坐标,因为当前它们正在彼此打开。有没有人有一个可行的例子来做到这一点?
最佳答案
您始终可以手动设置.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/