Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Вниз

Как из битмапа создать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.214 c
14-1088438775
TUser
2004-06-28 20:06
2004.07.18
Я один попался на такой развод?


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


3-1088173170
Sirruf
2004-06-25 18:19
2004.07.18
TDBGridEh


1-1088675077
minstrel
2004-07-01 13:44
2004.07.18
TVariant и int64


1-1089113225
AVK
2004-07-06 15:27
2004.07.18
TRichEdit + картинки.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский