Разница между Free и FreeImage для переменных TRasterImage? - PullRequest
0 голосов
/ 05 марта 2019

В моем проекте Lazarus я использую переменные типа TPortableNetworkGraphic, которые наследуются от TRasterImage.До сих пор я выпускал их методом Free, но заметил, что для этих типов также существует метод FreeImage.

В чем разница между этими двумя?Какой из них я должен использовать, или они должны называться оба?

1 Ответ

0 голосов
/ 05 марта 2019

Если мы исследуем методы, мы находим следующее:

Метод Free происходит от TObject.Вызов его уничтожает ваш экземпляр класса.

Метод FreeImage происходит от TRasterImage и равен SetHandle(0) методу из того же класса.Технически последний имеет дело главным образом с переменной FSharedImage (экземпляр класса TSharedRasterImage) и ее свойством Handle.Другими словами, после вызова FreeImage экземпляр TPortableNetworkGraphic экземпляра класса будет по-прежнему «жив».

...