我对delphi资源释放的概念一直不明白,比如建立关闭一个窗体form1时,form1.close;是不是就释放了所有的资源?还要不要加上form1.free;再比如form1中有一个table1,退出时table1.close;form1.close;是不是就释放了所有的资源呢?要怎样才能释放资源?哪些资源需要释放?如能回答或推荐文章,谢谢!

解决方案 »

  1.   

    When the application is terminated, all the resource will be released by operating system(except some resources allocated by API)
      

  2.   

    Form1.Close等价于Form1.visible:=false;
    根本就没有释放,如果你是菜鸟,你肯定根本没考虑过分配与释放的问题,Delphi都
    帮你做了!你看看Delphi的Project.dpr文件,窗体创建的代码都在那里面。如果调用了朱界面MainForm.close 或Application.terminate,Delphi会为你释放所有的资源,包括窗体和所有控件。如果你调用Form.Free就真的释放了窗体的资源,Form上所有的控件自动被释放。任何控件,你想主动释放就得用Free方法.
      

  3.   

    FREEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
      

  4.   

    大form亽onclose事件里加上
    action:=careee;
    from1.free;
      

  5.   

    还是有点不清楚,再问:
    为什么我在form1(主窗体)的onclose事件中写入form1.free;在delphi下运行时会无法正常结束程序呢?
    请举例说明,马上结贴。
      

  6.   

    procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action:=CaFree;
    end;
      

  7.   

    这也能等?
    Form1.Close等价于Form1.visible:=false;
      

  8.   

    请问:
    form1.close;
    active:=cafee;
    form1.free;
    有何区别?
    是否form1.close;关闭窗体并不释放窗体和其上控件占用资源?
    active:=cafree;既关闭窗体又释放所有资源?
    active:=cafree等同form1.free;?
    再:释放了主窗体就不需释放其他窗体了吗?
    虽然问题简单,但是还请有人彻底解答!
    这几天老是登陆不了这里,所以无法结贴,这次回答一次结贴。
      

  9.   

    还有我试了一下active:=cafree;提示can't assign a read only property。
    why?