【发布时间】:2015-04-22 02:38:37
【问题描述】:
在创建多表单 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;
【问题讨论】:
-
它们是在没有
WS_VISIBLE样式集的情况下创建的 (CreateWindowEx),如果在调用ShowWindow调用可能的OnCreate事件处理程序后它们是“可见的”,则显示辅助表单,有趣的是在主窗体显示之前,这发生在 Application.Run 中。 -
在我看来,您应该只调用一次 CreateForm。它的唯一目的是创建主窗体。
标签: delphi