我用Application.CreateForm 创建了一个窗体.
使用的是Show方式显示的.
在OnClose里面写了
form1 := nil;
Action := cafree;但是为什么内存还是没有释放呢?当第二次创建的时候内存会继续增加.有什么办法能够在Close的时候释放掉内存?在OnClose里面写form1 := nil;Action := cafree; 就不用说了,行不通的

解决方案 »

  1.   

    OnClose里面:
    Action:=caFree;
    OnDestroy里面:
    Form1:=nil;
      

  2.   

    自杀?搞不懂楼主,如果是反复使用的窗体,而且用Application.CreateForm创建的,为什么在Close的时候要释放了,下次调用又还要创建,多复杂多麻烦啊
    如果是只偶尔使用一次的窗体,在使用完之后form1.Free;form1 :=nil;也不是在它自身的Close事件里啊,不允许自杀的吧
      

  3.   

    多窗体的.偶尔使用一次的没有必要一直留在内存里面,
    使用的还是Show的方式,不知道什么时候关闭.
    这样想在Close的时候自动Free掉.
    按你说的,有没有好点的死法?呵呵
      

  4.   

    你那就是最好的死法了窗体本身不怎么占用内存的,内存没减少应该是你在窗体OnDestroy里面有成员忘了释放吧
      

  5.   

    在别的窗口ONCREATE事件中TRY创建它,然后finally释放它。