当前位置:编程学习 > Delphi >>

Delphi中对象解除技巧

在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。程序如下:

补充:软件开发 , Delphi ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,