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

问题描述:

我想要求用户在终止我的应用程序之前关闭所有打开的表单。如何从我的软件的所有打开的表单中获取列表?

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

我使用Delphi 2006,并且不使用窗体的自动创建,但我使用自动创建窗体的参考varApplication.CreateForm

我的问候。

+0

thx man,'Screen.FormCount'和'Screen.Forms'解决了我的问题! –

一个可能的解决方案(我在C#中使用)是将每个打开的表单实例存储在列表var中。 例如,您可以拥有一个名为opensopems的全局列表;当创建每个表单时,表单本身可以将其引用添加到openedForms,并在关闭时将其删除。
当用户试图关闭你的应用程序时,你可以检查列表数量是否大于零,如果用户真的想要关闭应用程序,那么在关闭应用程序之前,请优先关闭opensForms中包含的每个表单实例。

我用

Main.MDIChildCount >0 

儿童320交织

+0

Thx通过回答,但我没有使用MDI。 –

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形式。