0

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

有没有办法让项目中所有可用的表单类名到列表框?

4

1 回答 1

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);
于 2013-04-06T20:35:23.983 回答