读书人

AnsiString类型怎么转换为Form类型

发布时间: 2012-02-20 21:18:24 作者: rapoo

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)

读书人网 >C++ Builder

热点推荐