如果在过程或函数中创建了对象或申请了指针内存,在过程或函数中被外部的控件属性引用了。这时候应该如何释放内存?如:
procedure test;
var
a : TA;//TA为类
b : ^R;//R为record类型
begin
a := TA.Create;
控件1.属性 := a;
New(b);
控件2.属性 := b;
end;a和b被外部的控件属性引用了,这种情况应该如何释放a,b的内存?
procedure test;
var
a : TA;//TA为类
b : ^R;//R为record类型
begin
a := TA.Create;
控件1.属性 := a;
New(b);
控件2.属性 := b;
end;a和b被外部的控件属性引用了,这种情况应该如何释放a,b的内存?
解决方案 »
- 导库,50分
- 哪有 rxRichEdit For Delphi7 下载,在线等,谢谢了!
- 通过webbrowser不断提交,可行么?
- 太急!!!
- 为什么:image1.Picture.Bitmap.SaveToFile('c:\b.bmp');生成的文件是零字节?
- 一个网络算法问题,各位神仙快帮我!
- !!!!!我的image是从远程计算机截取udp传过来的,怎么用scrollbar卷屏????????
- CopyRect的问题
- 100分求如何在QUICKREP1中如何实现比较复杂的统计计算。
- 怎样给TcheckListBox添加关闭事件,当监听到关闭的时候执行一段代码
- 请教郁闷了一个星期的问题
- 习惯了c语言风格,实在看不惯delphi风格,咋办?
Object:a.free,PRecord:Dispose(b)
同意樓上的。因為在過程內創健的話,將變得不太容易管理。。 當然也可翠使用合局的TLIST來管理過程中對象的內郹分配
private
FRefObject: TObject;
...
public
property RefObject: TObject read FRefObject write FRefObject;
...
如此由于外部并不能管理到RefObject的生命周期,所以最好的办法是在Create当中先赋值为Nil,然后在Destroy当中,判断:
if FRefObject <> Nil then FRefObject.Free;