Free和FreeImage for TRasterImage变量之间有何区别?

时间:2019-03-05 19:29:09

标签: lazarus freepascal

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

两者之间有什么区别?我应该使用哪一个,或者两者都应使用?

1 个答案:

答案 0 :(得分:0)

如果我们研究这些方法,则会发现以下内容:

方法Free源自TObject。调用它会破坏您的类实例。

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