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

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

Посмотрите пожалуйста, что крамольного в коде? [D6, WinXP]


Jel ©   (2004-05-26 18:09:00) 


IconArray : array of HIcon;
...
function TForm1.GetIconWidth(index: integer): integer;
var IcInfo : TIconInfo;
   BmpInfo : BITMAP;
begin
 Result := 0;
 if GetIconInfo(IconArray[index], IcInfo) then begin
   if GetObject(IcInfo.hbmColor, SizeOf(BmpInfo), @BmpInfo) <> 0 then
     Result := BmpInfo.bmWidth
   else ShowMessage(SysErrorMessage(GetLastError));
 end;
end;


Радость сия вызывается из процедуры отрисовки витруального листбокса для определения размера иконки. При каждом вызове количество объектов GDI (по данным диспетчера задач) увеличивеатся на 14 и через определенное время программа благополучно начинает глючить (возникают проблемы с отрисовкой). К этому моменту количество объектов GDI переваливает за несколько тысяч. Создается впечатление, что что-то выделяется, но не освобождается. Никак не могу сообразить что именно? Ткните носом, плиз.


Jel   (2004-05-26 18:46:00) [1]


> VMcL ©   (26.05.04 18:28) [1]

!
Спасибо. Проглядел. :)


VMcL   (2004-05-26 18:28:00) [2]

>>Jel ©  (26.05.04 18:09)

GetIconInfocreates bitmaps for the hbmMask and hbmColor members of ICONINFO. The calling application must manage these bitmaps and delete them when they are no longer necessary.

?


Наверх

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