AnsiString类型如何转换为Form类型?
如代码:
void __fastcall TForm1::showFrm(AnsiString id)
{
TForm *tempFrm;
tempFrm=new TForm2(this);如何用变量替换为tempFrm=new id(this);
tempFrm-> Show();
}
[解决办法]
强制转换 (*Form)
[解决办法]
VCL原生类/类工厂实现
http://www.ccrun.com/article.asp?i=655&d=a38061
[解决办法]
看RegisterClass, findClass 之类的函数就行了
[解决办法]
使用控件数组,或者干脆用一个switch(id){case:}
[解决办法]
其实,使用模版类可以解决这个问题!具体你可以参考thinking in c++ Edition2的实做篇。刚好有这么个例子。
[解决办法]
String str = "Form " + IntToStr(i);
TForm *f = (TForm *)(Application-> FindComponent(str))
f-> Show();
[解决办法]
楼上正解!
用Application作为容器,保存起来
然后从Application对象中获取
切记!是不加T的类名!!!!
例如TForm1
Application-> FindComponent(Fomr1)