TRasterImage变量的Free和FreeImage之间的区别?

问题描述 投票:0回答:1

在我的Lazarus项目中,我使用TPortableNetworkGraphic类型的变量,它继承自TRasterImage。到目前为止,我已经使用Free方法发布它们,但我注意到对于这些类型也存在FreeImage方法。

这两者有什么区别?我应该使用哪一个,还是应该同时使用它们?

lazarus freepascal
1个回答
0
投票

如果我们调查方法,我们会发现以下内容:

方法Free起源于TObject。调用它会破坏你的类实例。

方法FreeImage来自TRasterImage,等于来自同一类的SetHandle(0)方法。后者在技术上主要处理FSharedImagevariable(TSharedRasterImage类实例)及其Handle属性。换句话说,在调用FreeImage之后,TPortableNetworkGraphic类实例的实例仍然是“活着的”。

© www.soinside.com 2019 - 2024. All rights reserved.