一些数据库应用程序开发人员更喜欢在主窗体之前创建数据模块,方法是编辑项目源文件,如下所示
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TDM, DM);
Application.CreateForm(TMainForm, MainForm);
{...}
Application.Run;
end.问题是--为什么?什么是正反两面?
发布于 2010-01-14 23:44:01
显而易见的原因是,如果主窗体需要数据模块来进行设置。例如,如果其中有主窗体在其OnCreate中引用的内容,那么当然必须首先准备好数据模块。
否则,这并不重要。
发布于 2010-01-15 00:08:38
我同意梅森的回答,因为它解释了为什么人们会这样做。然而,我认为这是一种糟糕的方法,因为它隐藏了由IDE维护的代码中的依赖项。在我看来,数据模块应该从自动创建列表中删除,并且应该在主窗体的OnCreate方法中创建。
发布于 2010-01-15 01:10:02
在这个问题上,确实有两个阵营,而且都是正确的。
第一个让应用程序管理每个表单/数据模块的生命周期。在这种情况下,如果主窗体使用数据模块,则必须先创建它,然后才能使用它。这对于小型应用程序很有效,但是当您使用具有多个forms...however的大型应用程序时,加载开销一旦应用程序加载,然后显示表单几乎是即时的,因为它已经在内存中创建。因为已经创建了每个表单/资源,所以在运行应用程序时也会有很大的内存占用率。当您向应用程序添加新的表单/数据模块时,Delphi也会“引导”您使用此方法。如果您不在mainform的OnCreate中使用数据模块,那么它在创建顺序中可能会更低,因为它只有在Application.Run启动之后才会被调用。
第二阵营希望处理每个表单/数据模块本身的创建和销毁(通常用于除MainForm之外的所有表单)。这种方法的优点是应用程序加载速度更快,并且在启动时立即消耗更少的内存。通常,在此场景中,是主表单(或其他表单)完全管理它们使用的每个表单/数据模块的生命周期。此方法最适合具有多个表单的大型应用程序。
https://stackoverflow.com/questions/2065235
复制相似问题