如何判断窗体是否存在
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的帮助