我使用delphi 7,我的项目有很多可用的表单。
我试图执行application.component[i].classname
以获取所有可用的表单类名,但我只获取创建的表单类名列表。
有没有办法将项目中的所有可用表单类名都列入列表框?
答案 0 :(得分:2)
您可以使用内置类注册表。
RegisterClass(TMyForm)
注册所有表单类。从初始化部分执行此操作,通常是定义类的单元的部分。FindClass
传递类名。FindClass
是否返回继承自TForm
的类。Application.CreateForm
创建表单实例,或者只调用该类的Create
虚拟构造函数。实例化如下:
var
MyClass: TPersistentClass;
Form: TForm;
....
MyClass := FindClass(ClassName);
if MyClass.InheritsFrom(TForm) then
Form := TFormClass(MyClass).Create(AnOwner);