手动理论:
poMainFormCenter
当您希望表单以 . 为中心时使用Application.MainForm
。简而言之,应用程序主窗体是您在运行应用程序时可以看到的第一个窗体,并且您应该考虑到此主窗体可以位于与您从中创建和居中新窗体的活动窗口不同的监视器上。
或者,如果您想通过它来居中您的表单Owner
,请使用poOwnerFormCenter
恕我直言更好的用户体验,因为当您彼此打开两个以上的窗口时,您可以将窗口移动到另一个监视器并在监视器上创建新窗口用户当前工作。
实际用例:
用户在第一台监视器上运行您的应用程序。应用程序Form2
从它的MainForm
. 用户Form2
在第二台显示器上移动了它,并从那里按下了创建另一个表单的按钮,Form3
.
如果您设计Form3
了使用该poMainFormCenter
位置,则此时将在不同的显示器上Form3
居中,恕我直言,这是令人困惑的。MainForm
如果您将使用这样的代码来创建和显示Form3
:
procedure TForm2.Button1Click(Sender: TObject);
begin
// the Owner parameter Self (or Form2 here) in the Form3 constructor along
// with the Position set to poOwnerFormCenter will ensure you that the form
// will be centered by the current form position, so on the current monitor
// where the user works on as well
Form3 := TForm3.Create(Self);
try
Form3.Position := poOwnerFormCenter;
Form3.ShowModal;
finally
Form3.Free;
end;
end;
当您当前工作时,您将Form3
集中Form2
在当前所在的同一监视器上,但主要是在同一监视器上:Form2