我在这里阅读http://delphi.about.com/od/adptips2005/qt/cleartimage.htm,从TImage中清除图像的一种方法是将nil分配给.Picture
,如下所示:
Image1.Picture := nil;
我只是想确定...我猜Image1.Picture.loadFromFile(fileName)
将分配一些内存,只需将其设置为nil,而不释放内存,将导致内存泄漏。
我说错了吗?如果是这样的话,那就是"正确的"从TImage卸载和清除图像的方法?
答案 0 :(得分:12)
TImage.Picture
设置中的TImage.SetPicture()
设置符为ExtCtrls
,TPicture.Assign()
单位调用Graphics
单元中的TPicture.SetGraphic()
,该单位调用Graphic
,在分配新的Graphic
之前,我们会释放现有的Image1.Picture := nil;
。
所以
的用法Image1.Picture.SetGraphic(nil);
最终会致电
{{1}}
并且不会导致任何内存泄漏。