M
mill666
Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个程序,有一个主窗体form1,form1上有一个主菜单,通过点击上面的菜单项,动态生成窗口form2,就是form2:=Tform2.create(nil)生成,form2上的一些控件也是动态create出来的,通过form2.showmodal显示form2,然后通过form2上一个按钮点击执行一个段程序,然后form2自动关闭,包括内存释放。我在 form2的destroy的事件里面执行有关内存释放的操作:
for i:=0 to form2.ComponentCount-1 do
begin
form2.Components.Free;
end;
然后在form1里面调用form2.free;
可是好像内存没有释放掉,因为如果再次点击form1上面的菜单,再生成form2的时候,程序占有的内存继续往上增加。因为我的程序是在form1的基础上经常点击菜单,如果这样下去,内存总有被该程序耗光的时候。
可是我确实调用了form2.free了,为什么还没有释放掉内存?
for i:=0 to form2.ComponentCount-1 do
begin
form2.Components.Free;
end;
然后在form1里面调用form2.free;
可是好像内存没有释放掉,因为如果再次点击form1上面的菜单,再生成form2的时候,程序占有的内存继续往上增加。因为我的程序是在form1的基础上经常点击菜单,如果这样下去,内存总有被该程序耗光的时候。
可是我确实调用了form2.free了,为什么还没有释放掉内存?