如何关闭模态表单和从中打开的所有模态表单?

时间:2013-06-04 13:51:18

标签: delphi modal-dialog delphi-5

现实生活中的例子:我的应用程序有一个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;

在我关闭最上面的模态形式之前没有任何事情发生,然后其他一切立即关闭。

2 个答案:

答案 0 :(得分:0)

对不起,我想我已经找到了解决方案:

 Screen.ActiveForm.Close();

 for i := Screen.FormCount - 1 downto 1 do begin
   if Screen.Forms[i] <> MainForm then begin
     Screen.Forms[i].Close();
   end;
 end;

似乎工作......

答案 1 :(得分:0)

试试这个

with Screen do
     for I := FormCount - 1 downto 0 do
       if Forms[I] <> Application.MainForm then
           Forms[I].Close;