Vcl.Forms.TCustomForm.PopupMode
Delphi
property PopupMode: TPopupMode read FPopupMode write SetPopupMode default pmNone;
C++
__property TPopupMode PopupMode = {read=FPopupMode, write=SetPopupMode, default=0};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | public | Vcl.Forms.pas Vcl.Forms.hpp |
Vcl.Forms | TCustomForm |
説明
最上位のフォームがウィンドウの WS_POPUP スタイルに対してどう動作するかを制御します。
PopupMode プロパティでは、最上位のフォームがウィンドウの WS_POPUP スタイルに対してどう動作するかを制御します。 WS_POPUP スタイルを持つウィンドウは、Z オーダーにおける自分の「所有者」の常に上にきます。PopupMode プロパティを PopupParent プロパティと合わせて使用して、画面上で、別のフォームの後ろに表示されてしまったモーダル ダイアログによって、アプリケーションがハングしてしまうのを避けることができます。
メモ: PopupMode プロパティの使用は、
fsStayOnTop
を FormStyle プロパティに対して指定することと同じですが、レイヤー操作をより制御することができます。
PopupMode プロパティは、ShowModal メソッドが呼び出された際に、自動的に pmAuto
に設定されます。しかしながら、これはウィンドウ ハンドルを再度作成してしまうため、あまり望ましいことではありません。ウィンドウ ハンドルの再作成を避けるには、ShowModal メソッドを呼び出す前(設計時など)に、明示的に PopupMode プロパティを pmAuto
に設定する必要があります。
ツール パレットや浮動表示されているツール ウィンドウなどの非モーダル設計ウィンドウでは、PopupMode プロパティを pmExplicit
に設定します。 その結果、ウィンドウは常にメイン フォームの上に表示されたままになります。 スナップ付けされたデザインの場合(ウィンドウがメイン フォームにドッキングされているような場合)、設計ウィンドウは、デザイナの一番上に留まります。
メモ: ドッキングされていないウィンドウの場合、設計ウィンドウは、メイン フォームの上に留まり、他のトップレベルのフォームが設計ウィンドウを覆うのを許します。
ポップアップ ウィンドウに Delphi 8 より前の動作をさせたい場合は、PopupMode プロパティを pmNone
に設定します(上記で言及したような ShowModal の項目以外の場合)。
PopupParent プロパティを明示的に TCustomForm に設定することにより、フォームの Z オーダーを強制して、ユーザーが変更できない「重なった」外観を作成することができます。PopupMode プロパティが pmExplicit
で PopupParent が nil だった場合、Application.MainForm が暗黙的に PopupParent によって使用されます。Application.MainForm が割り当てられていない場合、Application.Handle が PopupParent として使用されます。PopupMode プロパティが pmAuto
に設定されている場合、Screen.ActiveForm が PopupParent として使用されます。