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

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

TImageList [D7, WinXP]


oleg__ ©   (2006-03-07 15:14:00) 

Добрый день!
Проблема в следующем - есть общий набор изображений кнопок 24х24, хранящихся в ImageLis1. Требуется выборочно поместить несколько изображений в ImageList2. Делаю так:
var
 bmp: TBitmap;
 i: integer;
begin
 for i:=0 to ... do
 begin
   bmp:=TBitmap.Create;
   bmp.Height:=24;
   bmp.Width:=24;
   ImageList1.GetBitmap(i, bmp);
   ImageList2.Add(bmp, nil);
 end;
end;

Теперь, если подключить ImageList2 к ToolBar'у, то получаются изображения с белым фоном. Полагаю, дело в маске, но как это реализовать?


oleg__   (2006-03-07 15:32:00) [1]

все, накопал:

for ii:=0 to High(Indexes) do
   begin
     bmp:=TBitmap.Create;
     mask:=TBitmap.Create;
     try
       ARect:=Rect(0, 0, 24, 24);
       
       bmp.Height:=24;
       bmp.Width:=24;

       mask.Height:=24;
       mask.Width:=24;
       mask.Monochrome:=true;
       with Mask.Canvas do
       begin
         FillRect(ARect);
         ImageList_Draw(imlAllImages.Handle, Indexes[ii], Handle, 0, 0, ILD_MASK);
       end;

       imlAllImages.GetBitmap(Indexes[ii], bmp);
       Images.Add(bmp, mask);
     finally
       bmp.Free;
       mask.Free;
     end;


Наверх

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