我在主窗体(form1)上放置一个Panel1控件,然后form2窗体formcreate中调用ManualDock(form1.Panel1)方法;我发现用form2.close;后窗体是消失了,但是并未关闭
用assig去看还是显示存在,且用form2.show能直接再显示出来,要怎么真正关闭这样一个窗体呢?

解决方案 »

  1.   

    你需要调用destroy或free或freeandnil来销毁你的窗体
      

  2.   


    if Assigned(form2) then form2.Free;
      

  3.   

    释放窗体,freeandnil或者free  nil,或者在destroy中 nil
      

  4.   


    在FormClose事件中 加入
    Action:=caFree;
      

  5.   

    谢谢 lyhoo163 但是你的方法我不太明白,我创建窗口用的是Application.CreateForm,close的时候窗口还在;谢谢 hongqi162 ,我用freeandnil()解决了问题。谢谢 notebook800 ,但是简单的用.free 会出现非法操作,内存溢出;谢谢 cqsjky  ,正解。谢谢 ks_reny ,不过你的方法我用也出现非法操作,内存溢出,可能跟我用的del2010有关?