procedure CreateAndShowFrom(mFormClass: TFormClass);
begin
  with mFormClass.Create(nil) do try
    ShowModal;
  finally
    Free;
  end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
  CreateAndShowFrom(TForm);
end;嘻嘻嘻 谢谢关注 嘻嘻嘻嘻

解决方案 »

  1.   

    回复人: copy_paste(木石三) ( ) 信誉:105  2002-11-29 00:04:00  得分:0 
      void CreateForm(TMetaClass *AClass)
    {
      TForm *Form;
      Application->CreateForm(AClass, &Form);
      Form->ShowModal();
      delete Form;
    }
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      CreateForm(__classid(TForm1));
    }
    --------------------------------------------------------------------------------- 
    回复人: cker(〖烟波浩淼三千里、人鬼殊途五百年〗) ( ) 信誉:115  2002-11-29 00:51:00  得分:0 
      TComponent* CreateComponent( TClass cls)
    {
        TComponent* r;
        const void* const fn = *(void**)((char*)cls + vmtNewInstance),
                    * const fc = *((void**)cls + 11);
    asm{
    mov eax, cls
    call fn
    mov r, eax
    mov edx, 0
    call fc
    }
    return r;
    }
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        TWinControl *a,*b,*c ;    a = dynamic_cast<TWinControl*>(CreateComponent( __classid(TPanel)));
        a->Parent = this;
        a->Visible = true;    b =  dynamic_cast<TWinControl*>(CreateComponent(__classid(TGroupBox)));
        b->Parent = a;
        b->Align = alClient;
        b->Visible = true;    c =  dynamic_cast<TWinControl*>(CreateComponent(__classid(TButton)));
        c->Parent = b;
        c->Align = alClient;
        c->Visible = true;
    }
    要睡觉了
    --------------------------------------------------------------------------------- 
    木石三巧妙的投机解决了通过Form类创建实例的问题~~
    这个方法简单又记,价格低廉,质量又有保证~~
    转换我的函数已经游刃有余~~babysloth的方法简直是鬼斧神工~~
    针对所以TComponent类都通通搞定~~
    多谢cker指教~~这个帖子再放一段时间~~
    大家看看还有其他方法吗?~~
    自己也再寻找一下~~嘻嘻嘻 再次感谢关注 嘻嘻嘻嘻BCB贴
    http://expert.csdn.net/Expert/topic/1214/1214666.xml?temp=.8161127
      

  2.   

    我对你的代码产生疑惑,能否详细解释
    procedure CreateAndShowFrom(mFormClass: TFormClass);//TformClass哪里来的?莫非你也使用了一下mfc里面的RTTI技术?但是就算你用了那个技术了!还是有问题!TFormClass类怎么写?请你多多指教好么?我很早就碰到这个问题了,这要解决了!我我老人家请你吃一顿:)这个问题解决了,那么我以后升级程序容易了!:)begin
      with mFormClass.Create(nil) do try
        ShowModal;
      finally
        Free;
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      CreateAndShowFrom(TForm);
    end;