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