我想要求用户在终止我的申请之前关闭所有已打开的表格。
如何从打开的表单中自动获取列表?
我正在使用Delphi 2006,并且不使用表单的自动创建,但我使用自动创建的表单引用var
和Application.CreateForm
。
我的问候。
答案 0 :(得分:17)
答案 1 :(得分:3)
一种可能的解决方案(我在C#中使用)是将每个打开的表单实例存储在list var中。
例如,您可以拥有一个名为 openedForms 的全局列表;在创建每个表单时,表单本身可以添加对 openedForms 的引用,并在关闭时将其删除。
当用户尝试关闭您的应用程序时,您可以检查列表计数是否大于零,如果用户想要真正关闭,则在关闭应用程序之前,优先关闭opensForms中包含的每个表单实例。
答案 2 :(得分:1)
我用
Main.MDIChildCount >0
for Child froms
答案 3 :(得分:0)
var
i:integer;
begin
with Application do
for i:=0 to componentcount-1 do
if components[i] is TMyCustomForm //your form class here, or simply TForm
then showmessage(components[i].Name);
end;
显示MDI和非MDI表单。