应用程序中的最大表单数

时间:2013-12-15 11:31:07

标签: forms delphi

Delphi应用程序中的表单数量是否有任何限制? 我开发了一个包含40个或更多表单的应用程序(使用Delphi XE4),我很担心它的性能!

根据需要创建Forms而不是在应用程序启动时创建所有这些文件是一个好主意吗?

2 个答案:

答案 0 :(得分:7)

不,除了可用的系统内存之外,对表单的数量没有限制。表单(和子组件)保存在TList个后代中。从理论上讲,TList是它的边界,但是你很久就会达到系统内存,窗口句柄或GDI限制的极限。保证。

是的,最好按需创建表单。在应用程序启动时创建所有表单会不必要地减慢启动速度并消耗不必要的内存,因为很可能很多表单永远不会在应用程序的会话中使用。因此,您应始终在Form Designer Options of the Environment中禁用自动表单创建。相关问题涉及IDE默认情况下添加到表单单元的全局表单变量:立即删除它们。相反,请为创建的表单使用您自己的引用保持机制。

在未禁用该选项的现有项目中,您应从Form Options of the Project中的自动创建表单列表框中删除除主表单之外的所有表单。与此同义的是从项目文件中删除所有Application.CreateForm(...)行。

当然,这个按需创建表单的指南可能有例外。有些表格可能经常使用(创建起来可能非常昂贵),以便在启动时证明它们的创建并使它们保持活力。用户更习惯于有点长时间的应用程序启动,然后在已经处于活动状态时进行长时间的操作。在这种情况下,保持全局Form变量可以表达其永无止境的存在。

答案 1 :(得分:1)

我有450个表单和500个快速报表的项目。我按需创建表单并在表单关闭时释放它。应用程序启动时间为3秒。