如何判断窗体是否存在

狗戈 2007-03-22 09:00:12
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();
}


执行时出错,请问是哪儿出了问题?
...全文
206 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
n27741 2007-03-23
  • 打赏
  • 举报
回复
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的帮助
Y___Y 2007-03-22
  • 打赏
  • 举报
回复
直接用函数FindWindowEx不是很好吗

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧