我在这里阅读http://delphi.about.com/od/adptips2005/qt/cleartimage.htm,从TImage中清除图像的一种方法是将nil分配给.Picture,如下所示:
Image1.Picture := nil;
Run Code Online (Sandbox Code Playgroud)
我只是想确定...我想这Image1.Picture.loadFromFile(fileName)将分配一些内存并简单地将其设置为nil,而不释放内存,将导致内存泄漏.
我对么?如果是这样,这是从TImage卸载和清除图像的"正确"方法吗?
bum*_*mmi 12
该TImage.Picture二传手是TImage.SetPicture()在ExtCtrls单位,这就要求TPicture.Assign()在Graphics单位,这就要求TPicture.SetGraphic(),这将释放现有Graphic分配新之前Graphic.
所以用法
Image1.Picture := nil;
Run Code Online (Sandbox Code Playgroud)
最终会打电话
Image1.Picture.SetGraphic(nil);
Run Code Online (Sandbox Code Playgroud)
并且不会导致任何内存泄漏.