Delphi RTTI 动态创建Form

来源:互联网 发布:毕向东java基础课件 编辑:程序博客网 时间:2024/06/05 17:41

无需引用单元,直接创建对应Form

  

procedure MyShowForm(FormName: string);  var    ctxRtti: TRttiContext;    typeRtti: TRttiType;    methRtti: TRttiMethod;    LClass: TRttiInstanceType;    aForm: TCustomForm;  begin    ctxRtti  := TRttiContext.Create;    try      for typeRtti in ctxRtti.GetTypes() do      begin        if SameText(typeRtti.Name, FormName) then        begin          LClass := typeRtti.AsInstance;          aForm := LClass.MetaclassType.Create as TCustomForm;          aForm.Create(Application);          aForm.Show;          aForm.BringToFront;        end;      end;    finally      ctxRtti.Free;    end;  end;

  MyShowForm('TForm2');