如何在delphi 7中列出所有可用的表单

时间:2013-04-06 19:15:43

标签: delphi

我使用delphi 7,我的项目有很多可用的表单。 我试图执行application.component[i].classname以获取所有可用的表单类名,但我只获取创建的表单类名列表。

有没有办法将项目中的所有可用表单类名都列入列表框?

1 个答案:

答案 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);