我也试过了,但是还是不好,原来的form还是有一下资源赖在内存中不肯走

解决方案 »

  1.   

    我的想法是不要老实动态创建Form,因为这样假如释放不干净是很恐怖的。
    所以,最好是已经每种Form只创建几个(或者1个,够用就行),避免创建和释放带来内存的泄漏。
      

  2.   

    老兄,我试过了,我在调用close事件后,再次查看原来的form发现:此form中的组件全部变成了nil但是这个form还是存在,并且它中间定义的变量还是保持这close以前的数值。
      

  3.   

    你看看你的 'project\option\Forms',如果你的Form是和主窗口放在一起的, Form由程序创建,只有在关闭了程序的时候,才会由程序释放,请把Form放到另一边去,记住先Create。
      

  4.   

    在Form的Close事件中是否有Action:=caFree;
      

  5.   

    跟Form没关系,跟你创建form之后里面的代码有关系,可能有申请但没释放的东西。
      

  6.   

    我查过书了,这个Action:=caFree;是一定要有的。否则程序关闭前,不释放Form;见《Delphi 5 开发人员指南》(机械)Page86
      

  7.   

    在FORMCLOSE 事件中加一句  action:=cafree; 或是self.release 不管动态
    CREATE 多少窗口,在关闭之前,都会RELEASE。
      

  8.   

    可以再加上一条代码:Form1:=nil;
      

  9.   

    要是子窗体在destroy事件中加form:=nil;即可!
    要是模式窗体在用 try
                   showmodal;
                  finally
                    form:=nil;
                 end;
      

  10.   

    还要释放你在 Form 中创建的对象