![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Icon -> BitMap [XP]
Steep © (2007-04-05 15:08:00)Как загрузить иконку в BiMap?
Steep (2007-04-05 15:58:00) [1]Пасип большой clickmaker © !!!!!
ico := TIcon.Create;
ico.LoadFromFile( LE_IconPath.Text );
Glyph.Width := Ico.Width;
Glyph.Height := Ico.Height;
Glyph.Canvas.Draw(0, 0, ico );
ico.Free;
Сделал так ;)
Ega23 (2007-04-05 15:57:00) [2]А вот это чей код? Может быть наконец этот от MBo ©? :)
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;
clickmaker (2007-04-05 15:48:00) [3]Ico := TIcon.Create;
Bmp := TBitmap.Create;
try
Ico.LoadFromFile('..');
Bmp.Width := Ico.Width;
Bmp.Height := Ico.Height;
Bmp.Canvas.Draw(0, 0, Ico);
Button.Glyph := Bmp;
finally
Ico.Free;
Bmp.Free;
end;
Steep (2007-04-05 15:39:00) [4]
> Glyph - это у кнопки?
Да ;)
> если сказать Button.Refresh?
Все равно не хочет...
Ошибок никаких не выдает.. кнопка создается..
> и иконка точно грузится?
Ну я загружаю ImageIcon.Picture.LoadFromFile(OpenDialog.FileName); //в Image
нормально..
clickmaker (2007-04-05 15:34:00) [5]и иконка точно грузится?
Glyph - это у кнопки? если сказать Button.Refresh?
Steep (2007-04-05 15:23:00) [6]Рисую так
var
ico: TIcon;
...
ico := TIcon.Create;
ico.LoadFromFile( LE_IconPath.Text );
Glyph.Canvas.Draw(0, 0, ico );
ico.Free;
На кнопке ничего не появляется...
clickmaker (2007-04-05 15:14:00) [7]проще всего Bmp.Canvas.Draw(0, 0, Icon)