Application.CreateForm()形成可见性/状态

时间:2015-04-22 02:38:37

标签: delphi

在创建多形式VCL应用程序时,使用TApplication.CreateForm()创建的表单的状态是什么?是否调用WinAPI将它们设置为不可见状态,还是由某些VCL内部工作处理?

  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2); // Invisible
  Application.CreateForm(TForm3, Form3); // Invisible
  Application.Run;

1 个答案:

答案 0 :(得分:5)

使用Application.CreateForm()创建的第一个表单将成为应用程序的MainFormApplication.Run()如果Application.ShowMainForm为真,将自动显示该表单, MainForm的WindowState不是wsMinimized,并且未使用指定的SW_SHOWMINNOACTIVE标记创建该进程。

Application.CreateForm()创建的所有其他表单只有在Visible属性设置为True时才会自动显示。默认情况下,IDE会将辅助表单的Visible属性设置为False

请注意,在应用程序启动时自动创建所有表单通常不是一个好主意。您应该从“项目选项”中的自动创建列表中删除第二个和第三个表单,然后在实际需要时在代码中动态创建它们。您甚至可以将IDE设置为默认情况下不自动创建辅助表单。