delphi写的程序关闭主窗体后内存释放不了 delphi写的程序关闭主窗体后内存释放不了,请问怎么解决呀? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 组件或者对象没释放完吧,检查一下一个一个释放吧譬如动态创建的控件OWNER 是 nil的什么的,没关闭的DATASET、链接什么的。 你都创建了什么对象?逐一检查,如果不确定的话,在建立对象的时候就要使用create(self); 我用了mscomm控件,我在主窗体的onclose事件中把有mscomm控件的窗体free了好像就没有这个问题了,用mscomm控件有什么得注意的地方吗? 对应该是内存泄露了不过我还是觉得SPCom用起来方便 使用一个对象首先要创建 AObject =TAClass.Create();//可能有参数 使用完后就要释放该对象所使用的资源AObject.Free(),这样是最安全的否则就造成了所谓的内存泄露了; 如果使用的是接口则使用AInterface :=nil; 最好不要直接使用AObject.Destroy; procedure TObject.Free; begin if Self <> nil then Destroy; end; destructor TObject.Destroy; begin end; 在主窗体的OnClose事件中添加:Action:=caFree;在OnDestroy事件中添加:Form1:=nil;试试看 如果希望用户关闭窗体就在内存中释放它,必须处理它的onclose事件并且把action的参数设置为cafree例如:procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin action:=cafree;end;这样做才算彻底的关闭了这个窗体,否则只用整个程序退出的时候,内存才会释放它所占用的资源 关闭用application.close一般都能官的 可以用fastmm监测一下专门检测内存泄露的 连接Accase查询问题 【菜鸟级问题】OnChange打开窗体 Service 中使用ADO 不能正常工作............??????????????????????? 原创发布Windows无忧助手 V4.0 Beta 2,绝对实用的系统工具!!来者有分!!!!!! 一个关于控件的怪问题(目前在98、2000以及XP的一定条件下正常使用),300分送解决问题的朋友!! 请问 我用ADO作数据库,请问怎么生成空的Access.MDB文件 TOOLBAR添加图片 delphi中类似于replace的函数是什么 如何提取网站名? 有交通工具了 非常郁闷的问题(算法类),分不够再加
譬如动态创建的控件OWNER 是 nil的什么的,没关闭的DATASET、链接什么的。
逐一检查,如果不确定的话,在建立对象的时候就要使用create(self);
不过我还是觉得SPCom用起来方便
使用一个对象首先要创建 AObject =TAClass.Create();//可能有参数
使用完后就要释放该对象所使用的资源AObject.Free(),这样是最安全的否则就造成了所谓的内存泄露了;
如果使用的是接口则使用AInterface :=nil;
最好不要直接使用AObject.Destroy;
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end; destructor TObject.Destroy;
begin
end;
在OnDestroy事件中添加:Form1:=nil;试试看
并且把action的参数设置为cafree
例如:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
这样做才算彻底的关闭了这个窗体,否则只用整个程序退出的时候,内存才会释放它所占用的资源
一般都能官的
专门检测内存泄露的