也就是说,如何实现如果frmchild 关闭状态下可以打开,在打开状态下不能再创建?

解决方案 »

  1.   

    我的实现方式,你可以参考改进:
      if not frmPublic_Client.myFunFindMDIChild('myform') then
      Application.CreateForm(Tmyform,myform)
      else
      myform.Show;
    函数frmPublic_Client.myFunFindMDIChild('myform')为判断该子窗体是否已经存在.
    function  TfrmPublic_Client.myFunFindMDIChild(paFormName:AnsiString ):Boolean;
    begin
    var
      i:integer;
      myReturn:Boolean;
    begin
      myReturn:=false;
      for i :=1  to frmMain.MDIChildCount do
      begin
      if frmMain.MDIChildren[i-1].Name=paFormName then
      begin
      myReturn:=true;
      break;
      end;
      end;
     Result:=myReturn;
    end;
      

  2.   

    if Form2 = Nil then
         Form2:= TForm2.Create(Form2);
      Form2.WindowState := wsNormal;
      Form2.Show;
      

  3.   

    to foreveryday007(foreveryday007):
      你好!请问为什么关闭后在打开就发生错误啊:提示abstract error.
      

  4.   

    if form2.showing then form2.hide else form2.show;
      

  5.   

    egin
      if main.MDIChildCount=0 then
        begin
          application.createform(tform1,form1);
          form1.Show;
        end
      else
        begin
          mmain.activemdichild.close;
          application.createform(tform1,form1);
          form1.show;
        end;
    end;
      

  6.   

    if not Assinged(form2) then 
    begin
      form2:=Tform2.create(application);
      form2.show;
    end;在你的form2的onclose中写上
      Action:=cafree;
      form2:=nil;
    这样就可以了。