![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как очистить TImage от картинки что была уже туда загружена?
Чайник © (2010-03-15 16:33:00)В гугле нашел рекомендации:
Image1.Picture := nil;
Вроде работает, но остались сомнения - а куда девается при этом память, что была выделена под Picture?
Юрий Зотов (2010-03-15 22:29:00) [1]
> Чайник © (15.03.10 20:32) [5]
Смотря как реализован метод TPicture.Assign. Смотрите теперь его.
Короче - просмотрите всю цепочку вызовов и где-то Вы увидите, что память освобождается.
Чайник (2010-03-15 20:32:00) [2]
> NBAH1990 (15.03.10 19:57) [3]
> Timage.Picture.Bitmap.Free;
Насколько я понимаю, картинка в имейже не обязательно хранится в битмапе...
> Юрий Зотов © (15.03.10 18:09) [2]
> > Чайник © (15.03.10 16:33) Посмотрите код метода TImage.
> SetPicture
Посмотрел:
procedure TImage.SetPicture(Value: TPicture);
begin
FPicture.Assign(Value);
end;
Т.е. FPicture.Assign(nil) освобождает занятую картинкой память ?
NBAH1990 (2010-03-15 20:07:00) [3]А память очищается автоматически при загрузке новой картинке в Picture, а как я написал как раз очищает в любой момент.
NBAH1990 (2010-03-15 19:57:00) [4]Timage.Picture.Bitmap.Free;
помоему так?
Юрий Зотов (2010-03-15 18:09:00) [5]> Чайник © (15.03.10 16:33)
Посмотрите код метода TImage.SetPicture
Anatoly Podgoretsky (2010-03-15 16:44:00) [6]> Чайник (15.03.2010 16:33:00) [0]
Она освобождается, Picture это контролируемое свойство.