Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как стереть Image.Picture.Graphic? [D6, Win2k, WinXP]


Kraks ©   (2003-11-19 08:33:00) 

Мне необходимо очистить картинку TImage. Здесь в форуме нашёл темы про очистку Canvas, но у меня в имадже могуть лежать bmp, jpg, поэтому к Canvas-у TBitmap я добраться не могу. Ну, точнее, могу. Надо проверять, что за картинка и в зависимости от этого очищать Canvas либо Bitmap-а, либо TJpegImage. А нельзя ли очистить Image.Picture.Graphic? В других форумах говорили, что писать Image.Picture.Graphic := nil некорректно (только не пояснили, почему - не просвятите? :) ). Советовали изменять ширину и высоту Graphic до 0 и обратно, но как-то это всё...


Галина   (2004-01-22 08:44:00) [1]

Спасибо большое за нежданную помощь...


Kraks   (2003-11-21 08:04:00) [2]

А ведь и правда. Free, nil не работает! Буду делать так же. )) Спасибо.


Vlad1   (2003-11-20 22:07:00) [3]

Разумное слово только от MBo: Image.Picture := nil;. У меня в целом ряде программ есть кнопка "Очистить картинку" и код именно такой: Image.Picture := nil;. Не думал, что для кого-то это проблемма.


MBo   (2003-11-20 08:33:00) [4]

Протрассировав
Image.Picture.Graphic := nil  
или просто заглянув в исходники, видим
FGraphic.Free;
и соответственно бессмысленность "Именно так:..."

BTW, того же результата добьемся, просто сделав
Image.Picture := nil;


Kraks   (2003-11-20 08:09:00) [5]

Ага. Я уже выяснил. )) Именно так:

if Assigned(Image.Picture.Graphic) then
begin
 Image.Picture.Graphic.Free;
 Image.Picture.Graphic := nil;
end;


default   (2003-11-20 01:11:00) [6]

а может посмотреть, что в методе который пишет в это свойство?
MBo не просто так же пишет


Mihey   (2003-11-20 01:06:00) [7]

Да уж, хорошо бы Image.Picture.Graphic.Free или с проверкой, чтобы наверняка If Assigned(Image.Picture.Graphic) then
Image.Picture.Graphic.Free, а потом уже MBo [1].


Kraks   (2003-11-19 22:35:00) [8]

А мне в форуме SQL.ru - Delphi сказали, что будет утечка памяти, хотя у себя в примере пробовал - вроде работает...


MBo   (2003-11-19 08:40:00) [9]

Image.Picture.Graphic := nil  - корректно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо