delphi的资源释放问题(100分)

  • 主题发起人 主题发起人 shichuanqin
  • 开始时间 开始时间
S

shichuanqin

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠
我写了一个mis系统,每次运行一个模块(form)后,查看系统的资源,程序所占的内存增加
,可关闭后内存有些时候释放了,有时又没有释放,我的form上有一些query控件,查询得到
了数据集,应该时form释放,内存中的数据集也该释放,可是好像没有释放,为什么?

在动态创建form(showmodal)时,最后用free释放掉,好像也驻留在内存里了,为什么?

在主form中调用form1时,同时,form1引用了主form的变量,最后主form也引用了form1的
结果变量
if form1=nil then
application.createform(Tform,form1);
form1.showmodal;
if form1.modalresult = mrok then
mainfrom.value_dal := form1.value_d;
...........
form1.free;
form1 :=nil;
这时,有时执行form1:=nil; 时报错,而free没有事,why?
 
free 是这样做的
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;
 
报错应该是,已经Free了再去引用
 
用数据控件查询数据,关闭时有时是需要一定时间才释放内存中的数据的。但假如你对你的
没信心,你可以贴出来,让大家帮你看看。
 
看内存是看不出什么来的,你应该看的是GUID的资源。我相信你的程序已经正确的释放了资源。
 
form1 初始化为 nil
 
后退
顶部