Очистка изображения путем назначения 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);
и не вызовет утечки памяти.