実際の例: 私のアプリケーションには MainForm があります。ユーザーはボタンをクリックしてログインし、モーダル AdminSettingsForm を表示できます。AdminSettingsForm から、さらに多くのモーダル フォームなどを開くことができます。
ユーザーがログインして AdminSettingsForm を表示すると、タイマーが開始され、非アクティブ状態 (アイドル状態) が一定時間続くと AdminSettingsForm が閉じられます。
私はこれを試しました:
for i := Screen.FormCount - 1 downto 1 do begin
if Screen.Forms[i] <> MainForm then begin
Screen.Forms[i].Close();
end;
end;
最上位のモーダル フォームを閉じるまで何も起こらず、それ以外はすべて即座に閉じます。