我在动态创建窗体后,为什么在close事件中用free释放会出现错误,请详细解答,会给高分的,多谢!

解决方案 »

  1.   

    一个类不能释放自己,tform的话可以在Form.OnClose()中用Action:=caFree;来让它自动在窗口关闭后释放资源。
      

  2.   

    谢谢你的回答 我这个窗体是用来查询的 然后动态创建打印窗体 但是动态创建的打印窗体在ONCLOSE事件中用FREE就没有问题了 我很奇怪
      

  3.   

    动态建立form就是对话框啊。如果建立了,但是不收回空间会出问题吧。
    var Form1:TForm1;
      Form1:=TForm1.Create(nil);
      if form1.showmodal=mrok then
      begin
        
      end;
      form1.free;
    var Form1:TForm1;
      Form1:=TForm1.Create(application);
      Form1.showModal;
    在form1.onclose事件中写
    begin
      Form1:=nil;
      Action:=caFree;
    end;
    在关闭窗体的时候要把窗体占用的内存全部释放掉,delphi不能自动回收资源的,应该是这样.
      

  4.   

    可以参考 year2000bug(独孤不败) 的程序。