如何从我的软件的所有打开表单中获取列表?

时间:2011-09-23 13:36:31

标签: forms delphi delphi-2006

我想要求用户在终止我的申请之前关闭所有已打开的表格。

如何从打开的表单中自动获取列表?

我正在使用Delphi 2006,并且不使用表单的自动创建,但我使用自动创建的表单引用varApplication.CreateForm

我的问候。

4 个答案:

答案 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表单。