gpt4 book ai didi

delphi - 是否通过分配 Image1.Picture := nil; cause a memory leak? 来清除图像

转载 作者:行者123 更新时间:2023-12-03 14:51:16 27 4
gpt4 key购买 nike

我已阅读此处 http://delphi.about.com/od/adptips2005/qt/cleartimage.htm从 TImage 中清除图像的一种方法是将 nil 分配给 .Picture,如下所示:

Image1.Picture := nil;

我只是想确定...我猜Image1.Picture.loadFromFile(fileName)会分配一些内存并简单地将其设置为nil,而不释放内存,会导致内存泄漏。

我说得对吗?如果是这样,那么从 TImage 中卸载和清除图像的“正确”方法是什么?

最佳答案

TImage.Picture setter 是 ExtCtrls 单元中的 TImage.SetPicture(),它调用 TPicture.Assign() Graphics 单元中,它调用 TPicture.SetGraphic(),这将在分配新的 之前释放现有的 Graphic >图形

所以使用

Image1.Picture := nil; 

最终会调用

Image1.Picture.SetGraphic(nil); 

并且不会造成任何内存泄漏。

关于delphi - 是否通过分配 Image1.Picture := nil; cause a memory leak? 来清除图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23991829/

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