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

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

почему так работает TIMAGE [D7, WinXP]


RedLord ©   (2004-11-13 22:24:00) 

всем привет
народ подскажите почему так происходит и как с этим бороться??
если выполнять код до exit то иконка отображается
а если до конца процедуры, то даже иконка не отображается и весь массив заполнен одинаковыми значениями.

buf:array of dword;
x,y:integer;
begin
n:=0; a:='c:\1.exe';
image2.Picture.Icon.Handle:=extracticon(hinstance,a,0);
//exit;
setlength(buf,image2.Width* image2.Height );
for x:=0 to  image2.Width -1 do
 for y:=0 to  image2.Height -1 do
begin buf[n]:=image2.Picture.Bitmap.Canvas.Pixels[x,y];inc(n);end;
showmessage('proba');
end;


Mihey_temporary   (2004-11-13 22:51:00) [1]

TImage.Picture.Bitmap в данном случае не заполняется. Всё бы хорошо, но ты к нему обращаешься, а в данном случае это вызывает обнуление изображения. Выход - переконвертировать иконку в битмап либо не использовать TImage, который, кстати, не совсем верно работает с иконками.

Иконка в битмап:

http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=590


Наверх

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