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

Вниз

Как из битмапа создать HICON ?   Найти похожие ветки 

 
Tahion2   (2004-07-02 16:25) [0]

Как из битмапа создать HICON ?


 
Tahion2   (2004-07-02 16:49) [1]

Если можно, то приведите пример кода


 
TUser ©   (2004-07-02 16:53) [2]

Никак. Можно TIcon, вот пример с DelphiWorld"а

procedure TForm1.Button1Click(Sender: TObject);
var
 IconSizeX: integer;
 IconSizeY: integer;
 AndMask: TBitmap;
 XOrMask: TBitmap;
 IconInfo: TIconInfo;
 Icon: TIcon;
begin
 {Get the icon size}
 IconSizeX := GetSystemMetrics(SM_CXICON);
 IconSizeY := GetSystemMetrics(SM_CYICON);
 {Create the "And" mask}
 AndMask := TBitmap.Create;
 AndMask.Monochrome := true;
 AndMask.Width := IconSizeX;
 AndMask.Height := IconSizeY;
 {Draw on the "And" mask}
 AndMask.Canvas.Brush.Color := clWhite;
 AndMask.Canvas.FillRect(Rect(0, 0, IconSizeX, IconSizeY));
 AndMask.Canvas.Brush.Color := clBlack;
 AndMask.Canvas.Ellipse(4, 4, IconSizeX - 4, IconSizeY - 4);
 {Draw as a test}
 Form1.Canvas.Draw(IconSizeX * 2, IconSizeY, AndMask);
 {Create the "XOr" mask}
 XOrMask := TBitmap.Create;
 XOrMask.Width := IconSizeX;
 XOrMask.Height := IconSizeY;
 {Draw on the "XOr" mask}
 XOrMask.Canvas.Brush.Color := ClBlack;
 XOrMask.Canvas.FillRect(Rect(0, 0, IconSizeX, IconSizeY));
 XOrMask.Canvas.Pen.Color := clRed;
 XOrMask.Canvas.Brush.Color := clRed;
 XOrMask.Canvas.Ellipse(4, 4, IconSizeX - 4, IconSizeY - 4);
 {Draw as a test}
 Form1.Canvas.Draw(IconSizeX * 4, IconSizeY, XOrMask);
 {Create a icon}
 Icon := TIcon.Create;
 IconInfo.fIcon := true;
 IconInfo.xHotspot := 0;
 IconInfo.yHotspot := 0;
 IconInfo.hbmMask := AndMask.Handle;
 IconInfo.hbmColor := XOrMask.Handle;
 Icon.Handle := CreateIconIndirect(IconInfo);
 {Destroy the temporary bitmaps}
 AndMask.Free;
 XOrMask.Free;
 {Draw as a test}
 Form1.Canvas.Draw(IconSizeX * 6, IconSizeY, Icon);
 {Assign the application icon}
 Application.Icon := Icon;
 {Force a repaint}
 InvalidateRect(Application.Handle, nil, true);
 {Free the icon}
 Icon.Free;
end;


 
GuAV ©   (2004-07-02 17:00) [3]


> Никак

Да ну? CreateIconIndirect


 
TUser ©   (2004-07-02 17:04) [4]

Так он вернет хэндел того, что создано из битмапа. А сам хэндел из битмапа не создается, так что "Никак" было сказано правильно.


 
grom   (2004-07-02 17:09) [5]

procedure TForm1.ShowIcon(Id:Integer;Icon,Hint:string);
var
ics:TIcon;
ims,img:TImage;
iml:TImageList;
begin
ics:=TIcon.Create;
ims:=TImage.Create(Form1);
img:=TImage.Create(Form1);
iml:=TImageList.CreateSize(16,16);

ims.Picture.LoadFromFile(1.bmp);

 ImL.Clear;
 ImL.AddMasked(Ims.Picture.Bitmap,clWhite);
 ImL.GetIcon(0,Ics);
Ics.Handle =иконка хандле
img.Free;
ics.Free;
ims.Free;
iml.Free;
end;
приме


 
grom   (2004-07-02 17:11) [6]

здесь много лишнего. надо удалить


 
GuAV ©   (2004-07-02 17:35) [7]


> Так он вернет хэндел того, что создано из битмапа. А сам
> хэндел из битмапа не создается

IMHO, пора уже отождествлять хендел и объект. В дельфи же TButton - это тоже на самом деле не кнопка, а указатель на кнопку :-)


 
Fay ©   (2004-07-02 17:44) [8]

2GuAV ©   (02.07.04 17:35) [7]

> В дельфи же TButton - это тоже на самом деле не кнопка,
> а указатель на кнопку :-)


А вот и фигушки! Это класс.


 
GuAV ©   (2004-07-02 18:12) [9]


>  Это класс.

Это экземпляр класса, по сути указатель.


 
TUser ©   (2004-07-02 18:32) [10]


> Это экземпляр класса

Все-таки TButton - это класс.


 
GuAV ©   (2004-07-03 00:12) [11]


> Все-таки TButton - это класс.

Да согласен был не прав. TButton и TUser - классы :)



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

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

Наверх




Память: 0.47 MB
Время: 0.027 c
1-1089025716
А.Иванов
2004-07-05 15:08
2004.07.18
Есть ли в Delphi 6 какие-либо средства для упаковки файлов?


10-1023351431
comwad
2002-06-06 12:17
2004.07.18
Глюк при переходе с Visibroker 3 (D 6) на Visibroker 4.1 (D6)


14-1088518930
PenguinX
2004-06-29 18:22
2004.07.18
Вопрос про тег DIV


3-1087885186
Top100
2004-06-22 10:19
2004.07.18
Insert into ????


1-1089123691
raul
2004-07-06 18:21
2004.07.18
Internet Explorer и TidHTTPServer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский