Очистка изображения путем назначения Image1.Изображение:= nil; вызвать утечку памяти?

Я читал здесь http://delphi.about.com/od/adptips2005/qt/cleartimage.htm что способ очистить Изображение от TImage-назначить nil .Picture, например:

Image1.Picture := nil;

Я просто хочу быть уверен... Я думаю Image1.Picture.loadFromFile(fileName) выделит некоторую память и просто установит ее в ноль, не освобождая память, приведет к утечке памяти.

Я прав? Если это так, что это "правильный" путь, чтобы разгрузить и очистить изображение из TImage?

1 ответов


на TImage.Picture сеттер -TImage.SetPicture() на ExtCtrls единица, которая называет TPicture.Assign() на Graphics единица, которая называет TPicture.SetGraphic(), который освободит существующего Graphic перед назначением нового Graphic.

таким образом, использование

Image1.Picture := nil; 

в конечном итоге вызов

Image1.Picture.SetGraphic(nil); 

и не вызовет утечки памяти.