Главная страница
    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.013 c
14-1127049069
Piter
2005-09-18 17:11
2005.10.09
Програма для просмотра свойств WMV видео


4-1123239731
Tab
2005-08-05 15:02
2005.10.09
Системные имена кнопок


1-1127241643
QwertyKz
2005-09-20 22:40
2005.10.09
шрифт заголовка окна


3-1125374821
Ярослав
2005-08-30 08:07
2005.10.09
Как получить id всех соединений с БД в текущий момент


4-1124107383
alex-drob
2005-08-15 16:03
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский