首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

AnsiString类型怎么转换为Form类型

2012-02-20 
AnsiString类型如何转换为Form类型?如代码:void__fastcallTForm1::showFrm(AnsiStringid){TForm*tempFrmt

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)

热点排行