| 网站首页 | Vip会员区 | 教程 | 软件 | 图片 | QQ家园 | 免费资源 | 在线服务 | 论坛 | 博客 | 程序开发 | It学堂 | 作品发布 | 
站点相关
代刻黑客光盘或订做光盘

精品软件程序定制

为您的网站或者服务器保驾护航
相关内容
最 新 热 门
相 关 文 章
没有相关文章
您现在的位置: 红色黑客联盟 >> 程序开发 >> 软件开发 >> Delphi >> 正文
Delphi中对象解除技巧
文章录入:7747.Net    责任编辑:7747.Net  更新时间:2008-1-15 17:37:13

【字体:

在Delphi程序设计中,我们需要通过解除建立的所有对象来避免内存泄漏。但是,如果你在程序中不谨慎小心的话,很容易多次解除同一个对象,这将会引起很严重的错误,造成应用程序崩溃,甚至是死机。

请看下面的程序:


procedure TForm1.Button1Click(Sender:TObject);
var
 Button2,Button3:TButton;
begin
   Button2:=TButton.Create(self);
   Button3:=TButton.Create(Button2);
   Button2.Free;
   Button3.Free;
end;


  在上例中,当执行到Button3.Free时会产生一个错误,因为在调用Button2.Free时,Button2被解除,但因为Button2是Button3的宿主,Button3也同时被解除,因此错误就不可避免地发生了。
  要避免上述错误,有两种方法:第一,在解除宿主之前要先解除其所属的所有组件。这种方法很简单,只要将上例中Button2.Free和Button3.Free换位即可。第二,在Button3.Free执行之前将Button3变量设置为nil。程序如下:

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力
  • 上一个文章:

  • 下一个文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     | 设为首页 | 加入收藏 | 广告服务 | 我要投稿 | 关于我们 | 版权申明 | 免责声明 | 隐私声明 | 网站地图 |