不释放内存,是系统的事吧,跟程序的关系应该不大
不过,free的效果不知道和release相比如何呢

解决方案 »

  1.   


      form2:=tform2.create(nil);
      form2.showmodal;
      form2.free;
      form2:=nil;
      

  2.   

    你是干什么啦,
    不free就nil了,不占内存才怪呢!
    这样就好:freeandnil(form2)
    看人家的函数名你就知道应该谁先谁后啦!
      

  3.   

    form2:=nil;  form2.free;哪有这等事!已经nil了,根本就不执行free
    象楼上说的那样做吧
      

  4.   

    ————————————————道歉————————————————
    对不起,是笔误,Sorry,Sorry,Sorry,Sorry,!!!
      form2:=tform2.create(nil);
      form2.showmodal;
      form2.free;
      form2:=nil;
    我在程序中是这样写的,shen630(shen630)兄告诉我时我还没注意到,直到winglion(狂言)说时才发现提问时写错了。  我刚才又试过,重启后会好一点,但占用内存还是会明显累加!!!
      

  5.   

    有Create的语句,一定要有一条对应的Free语句,我看你的程序光有Create却不Free
    在C++中,new之后一定要delete
      

  6.   

    我想肯定是你在Form2中干了不该干的事情----没有释放申请的资源!
      

  7.   


    “我想肯定是你在Form2中干了不该干的事情”,说得好。——肯定是!我相信,我承认,我会负责。
      

  8.   

    先把程序没用的FREE掉吧。如果还不行,,,就难说了。
      

  9.   

    form2的onclose事件中加入以下语句才能真正释放内存.
    Action := caFree;
    form2 := nil;
      

  10.   

    ——
    现在搞定了:
    1)在form1打开form2时一定要立即将form2.free,这样form3生成的控件才能确保每次都是刷新过的数据。
    2)在form2销毁时destray事件中设为:form2:=nil即可。(在close事件中用nil报错)————————————非常感谢各位的指点——————————————————