Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



256-цветное изображение из res-файла

Автор: Mark Lussier

Вот функция, правильно читающая 256-цветные изображения из файла ресурсов.


 function LoadBitmap256(hInstance: HWND; lpBitmapName: PChar): HBITMAP;
 var
   hPal, hRes, hResInfo: THandle;
   pBitmap: PBitmapInfo;
   nColorData: Integer;
   pPalette: PLogPalette;
   X: Integer;
   hPalette: THandle;
 begin
 
   hResInfo := FindResource(hInstance, lpBitmapName, RT_BITMAP);
   hRes := LoadResource(hInstance, hResInfo);
   pBitmap := Lockresource(hRes);
   nColorData := pBitmap^.bmiHeader.biClrUsed;
 
   hPal := GlobalAlloc(GMEM_MOVEABLE, (16 * nColorData));
 
   {  hPal := GlobalAlloc( GMEM_MOVEABLE, ( SizeOf( LOGPALETTE ) +
   (nColorData * SizeOf( PALETTEENTRY )));}
   pPalette := GlobalLock(hPal);
   pPalette^.palVersion := $300;
   pPalette^.palNumEntries := nColorData;
 
   for x := 0 to nColorData do
   begin
     pPalette^.palPalentry[X].peRed := pBitmap^.bmiColors[X].rgbRed;
     pPalette^.palPalentry[X].peGreen := pBitmap^.bmiColors[X].rgbGreen;
     pPalette^.palPalentry[X].peBlue := pBitmap^.bmiColors[X].rgbBlue;
   end;
 
   hPalette := CreatePalette(pPalette^);
   GlobalUnlock(hRes);
   GlobalUnlock(hPal);
   GlobalFree(hPal);
 
 end;
 
 end.
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS