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

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

BMP -> ICO [D6, Win95/98, WinME, WinXP]


PaRL ©   (2002-11-17 21:26:00) 

Как. Чтобы Delphi принять могла.


PaRL   (2002-11-17 21:43:00) [1]

Ну вот тока к мануалам меня отправляь не надо...
Спасибо.


Феу   (2002-11-17 21:39:00) [2]

RTFM!!!
FAQ>>Графика>>Общие вопросы
или вот еще


procedure BmpToIcon(Icon : TIcon; Bitmap : TBitmap);
var
IconSizeX : integer;
IconSizeY : integer;
AndMask : TBitmap;
XOrMask : TBitmap;
IconInfo : TIconInfo;
begin
//Get the icon size
IconSizeX := GetSystemMetrics(SM_CXICON);
IconSizeY := GetSystemMetrics(SM_CYICON);

//Create the "And" mask
AndMask := TBitmap.Create;
AndMask.Width := IconSizeX;
AndMask.Height := IconSizeY;

//Copy Bitmap to AndMask and make a mask
AndMask.Canvas.Draw(0, 0, Bitmap);
AndMask.Mask(clSilver);

//Create the "XOr" mask
XOrMask := TBitmap.Create;
XOrMask.Width := IconSizeX;
XOrMask.Height := IconSizeY;

//Copy Bitmap to XorMask
XOrMask.Canvas.Draw(0, 0, Bitmap);

//Invert AndMask
AndMask.Canvas.CopyMode:=cmDstInvert;
AndMask.Canvas.Draw(0, 0, XOrMask);

//Fill silver on XorMask with Black
XOrMask.Canvas.CopyMode:= cmSrcAnd;
XOrMask.Canvas.Draw(0, 0, AndMask);

//restore mask
AndMask.Canvas.CopyMode:=cmDstInvert;
AndMask.Canvas.Draw(0, 0, XOrMask);

IconInfo.fIcon := true;
IconInfo.xHotspot := 0;
IconInfo.yHotspot := 0;
IconInfo.hbmMask := AndMask.Handle;
IconInfo.hbmColor := XOrMask.Handle;
Icon.Handle := CreateIconIndirect(IconInfo);

AndMask.Free;
XOrMask.Free;
end;


Наверх

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