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

Вниз

Народ подскажите плз, как картинку BMP формата вставить   Найти похожие ветки 

 
Чувачок ©   (2005-09-15 13:34) [0]

в tray использую компоненту CoolTrayIcon. В свойсво Icon можно загрузить только файлы типа ico. А у меня BMP.
Кстати пробовал вставить файл тиа ICO тоже не вставляется .
Что не так делаю свойство IconVisible =true?


 
Чувачок ©   (2005-09-15 14:00) [1]

Вроде дошло как иконку загружать .
А не подскажут ли увадаемые Доны как из формата BMP сделать тип файла ICO?


 
Ega23 ©   (2005-09-15 14:15) [2]

А не подскажут ли увадаемые Доны как из формата BMP сделать тип файла ICO?


PhotoShop?
CorelDraw?
IconWorkShop?


 
ShiFT   (2005-09-15 14:28) [3]

Вам необходимо создать два битмапа, битмап маски (назовём его "AND" bitmap) и битмап изображения (назовём его XOR bitmap). Вы можете пропустить обработчики для "AND" и "XOR" битмапов в Windows API функции CreateIconIndirect() и использовать обработчик возвращённой иконки в Вашем приложении.

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;


 
ShiFT   (2005-09-15 14:28) [4]

Способ преобразования изображения размером 32x32 в иконку.

unit main;

interface

uses

 Windows, Messages, SysUtils, Classes, Graphics, Controls,
 Forms, Dialogs, ExtCtrls, StdCtrls;

type

 TForm1 = class(TForm)
   Button1: TButton;
   Image1: TImage;
   Image2: TImage;
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var

 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
 winDC, srcdc, destdc: HDC;

 oldBitmap: HBitmap;
 iinfo: TICONINFO;
begin

 GetIconInfo(Image1.Picture.Icon.Handle, iinfo);

 WinDC := getDC(handle);
 srcDC := CreateCompatibleDC(WinDC);
 destDC := CreateCompatibleDC(WinDC);
 oldBitmap := SelectObject(destDC, iinfo.hbmColor);
 oldBitmap := SelectObject(srcDC, iinfo.hbmMask);

 BitBlt(destdc, 0, 0, Image1.picture.icon.width,
   Image1.picture.icon.height,
   srcdc, 0, 0, SRCPAINT);
 Image2.picture.bitmap.handle := SelectObject(destDC, oldBitmap);
 DeleteDC(destDC);
 DeleteDC(srcDC);
 DeleteDC(WinDC);

 image2.Picture.Bitmap.savetofile(ExtractFilePath(Application.ExeName)
   + "myfile.bmp");
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

 image1.picture.icon.loadfromfile("c:\myicon.ico");
end;

end.


 
ShiFT   (2005-09-15 14:30) [5]

Взято из (C)DRKB


 
Чувачок ©   (2005-09-15 15:44) [6]

Огромное спасибо!



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

Форум: "Основная";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.015 c
1-1127272192
КиТаЯц
2005-09-21 07:09
2005.10.09
Отключить сообщение Debugger EConvertError


2-1125150534
shaih
2005-08-27 17:48
2005.10.09
Запись изображения и последующее отображение из бд


14-1126176680
dr Tr0jan
2005-09-08 14:51
2005.10.09
Расписание авиарейсов


3-1124710267
Koala
2005-08-22 15:31
2005.10.09
Удаленный доступ к базе данных (FB 1.5)


4-1123743511
Ботвин Дмитрий
2005-08-11 10:58
2005.10.09
Раздел импорта ехе-файла





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