在我的Lazarus项目中,我使用的变量为
TPortableNetworkGraphic
类型,它是从TRasterImage
继承的。到目前为止,我已经使用Free
方法发布了它们,但是我注意到对于这些类型,还存在FreeImage
方法。
两者之间有什么区别?我应该使用哪一个,或者两者都应使用?
答案 0 :(得分:0)
如果我们研究这些方法,则会发现以下内容:
方法Free
源自TObject
。调用它会破坏您的类实例。
方法FreeImage
来自TRasterImage
,它等于同一类的SetHandle(0)
方法。后者在技术上主要处理FSharedImage
变量(TSharedRasterImage
类实例)及其Handle
属性。换句话说,在调用FreeImage
类实例之后,TPortableNetworkGraphic
类实例的实例仍然是“活动的”。