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

怎么判断窗体是否存在

2012-03-07 
如何判断窗体是否存在TForm*TFormMain::FormExist(AnsiStringszCaption){for(inti0i this- MDIChildco

如何判断窗体是否存在
TForm*   TFormMain::FormExist(AnsiString   szCaption)
{
for(int   i=0;i <this-> MDIChildcount;i++)
{
TForm   *pfm=this-> MDIChildren[i];
if(pfm-> Caption==szCaption)
  return   pfm;
}
return   NULL;
}
//---------------------------------------
void   __fastcall   TForm1::aa1Click(TObject   *Sender)
{
    TForm   *prm=FormExist( "Form2 ");
    if(pfm)
    pfm-> SetFocus();
    else   pfm=new   TForm2(Application);
    pfm-> Show();
}


执行时出错,请问是哪儿出了问题?

[解决办法]
直接用函数FindWindowEx不是很好吗
[解决办法]
TForm *prm=FormExist( "Form2 ");
if(pfm)
pfm-> SetFocus();
else pfm=new TForm2(Application);
pfm-> Show();

我直接拷贝的你的代码,
TForm *prm
if(pfm)
pfm 没有定义 Prm写错了

this-> MDIChildcount
this-> MDIChildCount
大写Count而不是小写

运行 没有报错

如果要找窗体请参考 WINDOWNS API FindWindow(char* className,char *FormCaption);

详细请查看MSDN 或者 bcb6.0的帮助

热点排行