你可以创建一个函数,函数的返回值是类,我将我的类放在DLL中,通过程序调用就是这样实现的。
For Example
Function InitClass : TYourClass;
Begin
     Result := TYourClass.Create( ... );
End;

解决方案 »

  1.   

    用类中类(Class of Class)很久没用Delphi,记不清楚了,Delphi开发人员指南里面有。
      

  2.   

    对 class of class
    这种类好像叫什么元类,呵呵!
      

  3.   

    //参考如下代码
    uses TypInfo;function ClassNameToComponent(mClassName: string; mOwner: TComponent): TComponent;
    var
      vPersistentClass: TPersistentClass;
    begin
      Result := nil;
      vPersistentClass := GetClass(mClassName);
      if not Assigned(vPersistentClass) then Exit;
      Result := TComponentClass(vPersistentClass).Create(mOwner);
    end; { ClassNameToComponent }procedure TForm1.Button1Click(Sender: TObject);
    var
      vComponent: TComponent;
    begin
      RegisterClasses([TEdit, TButton]);  TComponent(vComponent) := ClassNameToComponent('TEdit', Self);
      TControl(vComponent).Parent := Self;
      SetStrProp(vComponent, 'Text', '测试测试看');  TComponent(vComponent) := ClassNameToComponent('TButton', Self);
      TControl(vComponent).Parent := Self;
      SetStrProp(vComponent, 'Caption', '测试测试看');
      SetOrdProp(vComponent, 'Left', 140);  UnRegisterClasses([TEdit, TButton]);
    end;
      

  4.   

    //参考如下代码
    uses TypInfo;function ClassNameToComponent(mClassName: string; mOwner: TComponent): TComponent;
    var
      vPersistentClass: TPersistentClass;
    begin
      Result := nil;
      vPersistentClass := GetClass(mClassName);
      if not Assigned(vPersistentClass) then Exit;
      Result := TComponentClass(vPersistentClass).Create(mOwner);
    end; { ClassNameToComponent }procedure TForm1.Button1Click(Sender: TObject);
    var
      vComponent: TComponent;
    begin
      RegisterClasses([TEdit, TButton]);  TComponent(vComponent) := ClassNameToComponent('TEdit', Self);
      TControl(vComponent).Parent := Self;
      SetStrProp(vComponent, 'Text', '测试测试看');  TComponent(vComponent) := ClassNameToComponent('TButton', Self);
      TControl(vComponent).Parent := Self;
      SetStrProp(vComponent, 'Caption', '测试测试看');
      SetOrdProp(vComponent, 'Left', 140);  UnRegisterClasses([TEdit, TButton]);
    end;
      

  5.   

    //参考如下代码
    uses TypInfo;function ClassNameToComponent(mClassName: string; mOwner: TComponent): TComponent;
    var
      vPersistentClass: TPersistentClass;
    begin
      Result := nil;
      vPersistentClass := GetClass(mClassName);
      if not Assigned(vPersistentClass) then Exit;
      Result := TComponentClass(vPersistentClass).Create(mOwner);
    end; { ClassNameToComponent }procedure TForm1.Button1Click(Sender: TObject);
    var
      vComponent: TComponent;
    begin
      RegisterClasses([TEdit, TButton]);  TComponent(vComponent) := ClassNameToComponent('TEdit', Self);
      TControl(vComponent).Parent := Self;
      SetStrProp(vComponent, 'Text', '测试测试看');  TComponent(vComponent) := ClassNameToComponent('TButton', Self);
      TControl(vComponent).Parent := Self;
      SetStrProp(vComponent, 'Caption', '测试测试看');
      SetOrdProp(vComponent, 'Left', 140);  UnRegisterClasses([TEdit, TButton]);
    end;
      

  6.   

    TClassFrame = class of TFrame;function CreateFrame(ClassFrame: TClassFrame; const FrameName: string): TControl;
    begin
      ClearFrame();
      Result := ClassFrame.Create(form1.GroupBox1);
      with Result do
      begin
        Parent := form1.GroupBox1;
        Name := FrameName;
        Align := alClient;
        Visible := True;
      end;
    end;调用时候
    CreateFrame(TFrame4, 'Frame41');这是以前写的创建Frame的函数,里面就用到了元类,你自己参考一下改改好了
      

  7.   

    你的要求完全可以实现,用Map容器。
      

  8.   

    你的要求完全可以实现,用Map容器。
      

  9.   

    你的要求完全可以实现,用Map容器。