手動理論:
フォームを の中央に配置する場合に使用poMainFormCenter
しますApplication.MainForm
。つまり、アプリケーションのメイン フォームは、アプリケーションを実行したときに最初に表示されるフォームです。このメイン フォームは、新しいフォームを作成して中央に配置するアクティブなウィンドウとは別のモニター上にある可能性があることを考慮する必要があります。
または、フォームをその で中央に配置する場合は、ユーザー エクスペリエンスに優れた をOwner
使用します。これは、2 つ以上のウィンドウを互いに開いている場合、ウィンドウを別のモニターに移動して、モニター上に新しいウィンドウを作成できるためです。poOwnerFormCenter
ユーザーは現在取り組んでいます。
実際のユースケース:
ユーザーは最初のモニターでアプリケーションを実行しました。アプリケーションは、Form2
その から を作成しましたMainForm
。ユーザーはそれForm2
を 2 番目のモニターに移動し、そこから別のフォームを作成するボタンを押しました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
