Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

BMP в ICO

18K
13 апреля 2007 года
A_STAS
5 / / 13.09.2006
Есть Image с рисунком.
Как сохранить в формате ICO?
Спасибо.
26K
14 апреля 2007 года
Gh0stik
10 / / 06.03.2007
Код:
procedure TForm1.Button1Click(Sender: TObject);  
var  
  IconSizeX : integer;  
  IconSizeY : integer;  
  AndMask : TBitmap;  
  XOrMask : TBitmap;  
  IconInfo : TIconInfo;  
  Icon : TIcon;  
begin  
{Получаем размер иконки}  
  IconSizeX := GetSystemMetrics(SM_CXICON);  
  IconSizeY := GetSystemMetrics(SM_CYICON);  

{Создаём маску "And"}  
  AndMask := TBitmap.Create;  
  AndMask.Monochrome := true;  
  AndMask.Width := IconSizeX;  
  AndMask.Height := IconSizeY;  

{Рисуем на маске "And"}  
  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);  

{Рисуем для теста}  
  Form1.Canvas.Draw(IconSizeX * 2, IconSizeY, AndMask);  

{Создаём маску "XOr"}  
  XOrMask := TBitmap.Create;  
  XOrMask.Width := IconSizeX;  
  XOrMask.Height := IconSizeY;  

{Рисуем на маске "XOr"}  
  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);  

{Рисуем в качестве теста}  
  Form1.Canvas.Draw(IconSizeX * 4, IconSizeY, XOrMask);  

{Создаём иконку}  
  Icon := TIcon.Create;  
  IconInfo.fIcon := true;  
  IconInfo.xHotspot := 0;  
  IconInfo.yHotspot := 0;  
  IconInfo.hbmMask := AndMask.Handle;  
  IconInfo.hbmColor := XOrMask.Handle;  
  Icon.Handle := CreateIconIndirect(IconInfo);  

{Уничтожаем временные битмапы}  
  AndMask.Free;  
  XOrMask.Free;  

{Рисуем в качестве теста}  
  Form1.Canvas.Draw(IconSizeX * 6, IconSizeY, Icon);  

{Объявляем иконку в качестве иконки приложения}  
  Application.Icon := Icon;  

{генерируем перерисовку}  
  InvalidateRect(Application.Handle, nil, true);  

{Освобождаем иконку}  
  Icon.Free;  
end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог