gpt4 book ai didi

delphi - 当我在 TBitmap 中加载新图像时,我必须先销毁现有图像吗?

转载 作者:行者123 更新时间:2023-12-04 16:46:03 26 4
gpt4 key购买 nike

我正在从 TImageList 中的资源加载多个图像在运行时使用此代码:

 Bitmap:=TBitmap.Create;
MyIcons:=TImageList.Create(self);
Bitmap.LoadFromResourceName(HInstance,'DEFAULT16');
MyIcons.AddMasked(BitMap,clRed);
Bitmap.LoadFromResourceName(HInstance,'FOLDER16');
MyIcons.AddMasked(BitMap,clRed);
Bitmap.LoadFromResourceName(HInstance,'BACK16');
MyIcons.AddMasked(BitMap,clRed);
Bitmap.Free;

我想知道当我加载一个新的位图时是否应该销毁以前的位图( Bitmap.Assign(nil)),或者这是在 LoadFromResourceName 中自动完成的。方法。我的意思是我不想有内存泄漏...

最佳答案

没有。当LoadFromResourceName执行时,它会清除前一个图像使用的所有内存和资源,并加载新图像。

您的代码很好,以缺少的 try/finally 为模.它应该是:

Bitmap := TBitmap.Create;
try
....
finally
Bitmap.Free;
end;

否则,是否应在分配给 Bitmap 之间引发异常? , 并销毁对象,对象不会被销毁并且会泄漏。

关于delphi - 当我在 TBitmap 中加载新图像时,我必须先销毁现有图像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30777620/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com