![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как из битмапа сделать значок?
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