Главная страница
    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.011 c
4-1123768084
chili
2005-08-11 17:48
2005.10.09
Kак мне из dll запустить внешнию программу?


4-1123600876
CTPAX.RU
2005-08-09 19:21
2005.10.09
Ошибка при чтении и записи в порт


3-1125043936
Виталий Панасенко
2005-08-26 12:12
2005.10.09
Возник. ошибки в дес.-тайме при попытке создать экземпляры полей


14-1126752415
vrem
2005-09-15 06:46
2005.10.09
Как на вас влияет пятно на солнце? :)


2-1124970321
grigory
2005-08-25 15:45
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский