如何释放系统资源(200分)

  • 主题发起人 主题发起人 owalmh
  • 开始时间 开始时间
O

owalmh

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:
本人在编写较为大型的软件中(其中有不少的gif 和 avi )系统资源不能完全释放.
已经在 onClose 中 action:=cafree;
但软件运行前----系统资源 89%.
但软件运行后-----系统资源 70%
请问???????? 如何解救!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
onClose中的Action := caFree是确保该窗口一定Free,否则该窗口只是最小化
(对MDIChild),然后会激发Form的OnDestroy事件,你的一些资源释放语句应该放在这里。
不过你的问题太笼统,问题可能不是你所说的原因。再仔细看看代码吧。
 
onClose中的Action := caFree只是Free窗口及Parent指向它的组件,所以我在用Create
建立一对象时推荐用以下方法:
xxxxx:=TXxxx.Create(self);
因为这样表示xxxxx的Parent指向self,当你Free self时,xxxxx同时会Free掉。当然,你
也可以下方法:
xxxxx:=TXxxx.Create(nil);
xxxxx.Parent:=self;

xxxxx:=TXxxx.Create(nil);
在OnDestroy中加上 xxxxx.Free;
 
补:
sorry 并不是( 软件运行后-----系统资源 70% )而是完全退出软件后 系统资源 70%
我想请教-------这是否与gifimage 控件有关 (代码经擦看后没发现错误)

 
一般来说,完全退出后就和软件没有关系了。你的软件是编译后单独运行的,还是在delphi环境
中运行的?
 
please continue or end
 
Use OnClose to perform special processing when the form closes. The OnClose
event specifies which event handler to call when a form is about to close. The
handler specified by OnClose might, for example, test to make sure all fields
in a data-entry form have valid contents before allowing the form to close.

A form is closed by the Close method or when the user chooses Close from the
form's system menu.

The TCloseEvent type points to a method that handles the closing of a form.
The value of the Action parameter determines if the form actually closes. These
are the possible values of Action:

应该是avi,bmp等东西的资源没有被释放完。
 
看书上说:NT的每个程序都有单独的内存空间,程序结束后系统会释放它所有的资源,照说
应该不会出现内存泄漏,但是在实际使用中确实会存在这个问题,不知是怎么回事。
 
多人接受答案了。
 
后退
顶部