如何从我的软件的所有打开的表单中获取列表?
问题描述:
我想要求用户在终止我的应用程序之前关闭所有打开的表单。如何从我的软件的所有打开的表单中获取列表?
如何从打开的表单自动获取列表?
我使用Delphi 2006,并且不使用窗体的自动创建,但我使用自动创建窗体的参考var
与Application.CreateForm
。
我的问候。
答
一个可能的解决方案(我在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形式。
thx man,'Screen.FormCount'和'Screen.Forms'解决了我的问题! –