在DELPHI中是不是可以知道一个类名就可以自动创建他?案例:我项目中实现了三个类:TCLS1,TCLS2,TCLS3,一般创建这个类都是通过定义变量再create,如 
var 
   cls1 : TCLS1;
begin
   cls1 := TCLS1.Create(self);
end ;但我现在要动态实现这三个类,我在外部存储(如数据库)了三个类的名字,我现在想根据这三个类的名字(字符串)可以动态加载他们,可以嘛?

解决方案 »

  1.   

    http://sun.cis.scu.edu.tw/~nms9115/articles/delphi/AboutRegisterClass.htm
      

  2.   

    TRegGroups = class  private    FGroups: TList;    FLock: TRTLCriticalSection;    FActiveClass: TPersistentClass;    function FindGroup(AClass: TPersistentClass): TRegGroup;  public    constructor Create;    destructor Destroy; override;    procedure Activate(AClass: TPersistentClass);    procedure AddClass(ID: Integer; AClass: TPersistentClass);    function GetClass(const AClassName: string): TPersistentClass;    function GroupedWith(AClass: TPersistentClass): TPersistentClass;    procedure GroupWith(AClass, AGroupClass: TPersistentClass);    procedure Lock;    procedure RegisterClass(AClass: TPersistentClass);    procedure RegisterClassAlias(AClass: TPersistentClass; const Alias: string);    function Registered(AClass: TPersistentClass): Boolean;    procedure StartGroup(AClass: TPersistentClass);    procedure Unlock;    procedure UnregisterClass(AClass: TPersistentClass);    procedure UnregisterModuleClasses(Module: HMODULE);    property ActiveClass: TPersistentClass read FActiveClass;  end;
      

  3.   

    這個, 對我的基類有要求的, 從Tobject直接繼承是不行的!
    只能從TObject開始吧!看看有誰有更好的方法!
      

  4.   

    有没有详细一点的嘛?我才学习DELPHI。现在有一个项目DELPHI开发,我想对其有一定了解好确定一个好的系统结构。
      

  5.   

    可以~~~这种用法在RTTI语言中很常见,Object Pascal不是提供了TClass类类型吗?前缀class of声明就行了.例子VCL中很多,因为这是常见用法.比如TPicture中根据GraphicClass的类型生成不同类的实例.不过你的问题有问题,没这么说的,没有创建类的说法,这叫创建对象,或者是类的实例