求助,一个关于资源释放的问题(100分)

  • 主题发起人 主题发起人 abba
  • 开始时间 开始时间
A

abba

Unregistered / Unconfirmed
GUEST, unregistred user!
1点击一个按钮,弹出一个新窗口,用
NewForm:=TNewForm.create(self);
NewForm.show;
还是使用静态的
NewForm.show好?
2窗体的close方法和release有什么区别阿?
是不是close方法不释放资源?使用动态创建的窗体,关闭时是不是应该调用
release方法?
3.一个窗体内,如果动态创建了很多对象。关闭窗体时,系统是不是会自动去
释放这些对象资源,还用得着我去手动释放吗?
一口气问了这么多,希望能为大虾能解我之惑
 
1:当然是动态的好了,占用资源更少一些~~~~~~~
2、3可以合并回答:
对于主窗体 ,默认Close和Free是一样的,就是说在关闭窗体的时候会自动释放内存,但是
如果不是主窗体,那么默认在关闭的时候,只是Hide而已,不会释放内存~~~,当然如果你在
非主窗体的CloseXXXX事件中指定Action:=caFree那样就会释放资源,你也可以显式调用窗体
的Free方法来释放她!
至于是不是要手工Free一个窗体,可以这样说:如果你动态创建的窗体,创建的时候只要没有
指定Owner为nil,那么你都可以不必手动来释放窗体~~~~~~,在Owner释放的时候会自动释放~
当然,你应该养成良好的习惯,不用了就Free掉,这样能够节省资源。。。。。。
 
非常感谢kingron的帮助
 
后退
顶部