现实生活中的例子:我的应用程序有一个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;
在我关闭最上面的模态形式之前没有任何事情发生,然后其他一切立即关闭。
答案 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;