如何在Delphi7中列出所有可用表单

如何在Delphi7中列出所有可用表单,delphi,Delphi,我使用Delphi7,我的项目有很多可用的表单。 我试图执行application.component[i].classname以获取所有可用的表单classname,但我只获取已创建表单classname的列表 有没有办法将项目中所有可用的表单类名都放到列表框中 您可以使用内置的类注册表 通过调用RegisterClass(TMyForm)注册所有表单类。从初始化部分执行此操作,通常是定义类的单元的初始化部分 当您想从注册表恢复类时,调用FindClass传递类名 为了安全起见,请检查Fin

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


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

您可以使用内置的类注册表

  • 通过调用
    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);

你在制作什么样的程序,而你却无法跟踪你制作的表单?@david:很复杂,但我必须解决它,谢谢。+1我会检查返回的类是否继承自TCustomForm,以防万一。。。