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

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

Как из битмапа сделать значок?


TStas ©   (2009-03-13 22:30:00) 

Попытка Ico := TIcon.Create; Ico.Assign(bmp); приводит к гюку.


Ega23   (2009-03-16 09:59:00) [1]

Кто-то на этом форуме дал. Кто - не помню. Вроде из мастеров.


function BitmapToIcon(Bitmap: TBitmap): TIcon;
var
 IconSizeX, IconSizeY : integer;
 IconInfo: TIconInfo;
 IconBitmap, MaskBitmap: TBitmap;
 x, y: Integer;
 TransparentColor: TColor;
begin
 IconSizeX := GetSystemMetrics(SM_CXICON);
 IconSizeY := GetSystemMetrics(SM_CYICON);
 IconBitmap:= TBitmap.Create;
 IconBitmap.Width:= IconSizeX;
 IconBitmap.Height:= IconSizeY;
 IconBitmap.Canvas.StretchDraw(Rect(0, 0, IconSizeX, IconSizeY), Bitmap);
 IconBitmap.TransparentColor:= Bitmap.TransparentColor;
 TransparentColor:= IconBitmap.TransparentColor and $FFFFFF;
 MaskBitmap:= TBitmap.Create;
 MaskBitmap.Assign(IconBitmap);
 for y:= 0 to IconSizeY - 1 do
   for x:= 0 to IconSizeX - 1 do
     if IconBitmap.Canvas.Pixels[x, y] = TransparentColor then
       IconBitmap.Canvas.Pixels[x, y]:= clBlack;
 IconInfo.fIcon:= True;
 IconInfo.hbmMask:= MaskBitmap.MaskHandle;
 IconInfo.hbmColor:= IconBitmap.Handle;
 Result:= TIcon.Create;
 Result.Handle:= CreateIconIndirect(IconInfo);
 MaskBitmap.Free;
 IconBitmap.Free;
end;


Тын-Дын   (2009-03-14 00:04:00) [2]


> фыва   (13.03.09 22:34) [1]
> проверил. яндекс работает


Возьми с полки пирожок.


фыва   (2009-03-13 22:34:00) [3]

проверил. яндекс работает http://yandex.ru/yandsearch?text=bmp+%D0%B2+ico+delphi&stpar2=%2Fh0%2Ftm9%2Fs2&stpar4=%2Fs2


Наверх

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