Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.17;
Скачать: CL | DM;

Вниз

Рисование иконки   Найти похожие ветки 

 
MNNN   (2008-01-26 11:19) [0]

гружу иконку LoadIcon( получаю хэндл, есть желание найти его
память чтоб порисовать на ней, так как иконка частный вид битмана


 
Leonid Troyanovsky ©   (2008-01-26 11:53) [1]


> MNNN   (26.01.08 11:19)

От:Ignacio Alvarez (ic...@son1.telmex.net.mx)
Заголовок:Re: Help: Drawing on a TIcon
Группы новостей:borland.public.delphi.graphics
Число:1999/04/20

This is sort of the same code I posted before but packaged in an easy to use
function that accepts a TBitmap and returns a TIcon. It also uses StretchDraw,
so the bitmap doesn"t have to be exactly 32x32:

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;

Example of use:

procedure TForm1.FormCreate(Sender: TObject);
var
 Bitmap: TBitmap;
 TempIcon: TIcon;
begin
 Bitmap:= TBitmap.Create;
 Bitmap.LoadFromFile("c:\program files\borland\delphi
3\images\icons\chem16.bmp");
 TempIcon:= BitmapToIcon(Bitmap);
 Application.Icon:= TempIcon;
 TempIcon.Free;
 Bitmap.Free;
end;

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2008.02.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
15-1200331759
oldman
2008-01-14 20:29
2008.02.17
Поздравляю всех со старыи новым годом...


2-1201196422
repus
2008-01-24 20:40
2008.02.17
Тема игр РПГ


8-1173673946
arturich
2007-03-12 07:32
2008.02.17
Возможно ли?


1-1194198435
Slim
2007-11-04 20:47
2008.02.17
DBLookupComboboxEh1


15-1200597998
ProgRAMmer Dimonych
2008-01-17 22:26
2008.02.17
К вопросу об учителях и системе образования