【发布时间】:2017-03-30 14:11:55
【问题描述】:
当您在 C++Builder 中创建 Vcl 应用程序时,它会自动为您创建表单并添加如下行:
Application->CreateForm(__classid(Tmain), &main);
我更喜欢使用new 创建表单,因此删除所有这些行,除了我的主要表单行(请参阅Rob Kennedy 的this article 进行一些讨论)。
我最近发现的是 CreateForm() 将非常乐意创建包含纯虚方法的表单。这可能会在运行时导致“纯虚函数调用”错误。相反,使用new 创建表单会产生编译时“无法创建抽象类的实例”错误。
编译时错误优于运行时错误,我想知道是否可以在所有表单(包括主表单)上使用new? Application.CreateForm() 在幕后做了什么其他的事情,我可以复制一下吗?
【问题讨论】:
-
在 Project->Options->Forms 下,您有一个“自动创建表单”列表(以及一个主表单选择)。您可以将除主表单之外的所有表单移动到“可用表单”列表中,以便在运行时手动创建它们。
标签: c++builder vcl c++builder-xe6