有这样一个构思:有1个MDIForm,上面有2个Button,分别管理1个MDIChild(available form )。Button的功能是创建MDIChild,如果这个MDIChild已经存在,那么就显示这个Form.主要目的是为了在一个MDIChild的事务没有处理完之前,转向另外一个MDIChild,处理完第二个后,再转向前一个MDIChild未处理完的事务。
我的问题是:Button如何判断MDIChild是否已经存在?
如果buttonclick程序这样写:
form2:=Tform2.create(self);
form2.show;
那么判断form2是否存在的语句必须在这之前,但是这时候form2还没有创建阿!
在线等待1小时,100分相送,否则只有等到国庆节之后哦!:)

解决方案 »

  1.   

    呵呵,可以用screen对象的forms集合中来判断啊,如果指定的form已经在这个集中中了,那么就不用创建了,如果不存在在,那么说明还没有创建,我也是在delphi资源大全里发现的这个代码!如果你手边有这张光盘就去找找吧!
      

  2.   

    if no assigned(form2) then //判断是否分配了地址空间
    begin
     form2:=Tform2.create(self);//如果没有的话就创建
     form2.show;
    end
    esle
     form2.BringToFront  //存在的话就置为当前
      

  3.   

    声明为全局的FORM2;
    然后ISNIL()
      

  4.   

    if not Assigned(Form2) then
    begin
      form2:=Tform2.create(self);
      form2.show;
    end
    else
      Form2.Show;
    这样用的话要注意:释放窗体时要用
    Form2.Free;
    Form2 := nil;

    FreeAndNil(Form2);
    否则判断会失效
      

  5.   

    呵呵,结贴算了!否则大家的分就不多了。
    手边现在没有delphi,只好以后试试了。