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;嘻嘻嘻 谢谢关注 嘻嘻嘻嘻
begin
with mFormClass.Create(nil) do try
ShowModal;
finally
Free;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
CreateAndShowFrom(TForm);
end;嘻嘻嘻 谢谢关注 嘻嘻嘻嘻
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
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;