Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.06;
Скачать: CL | DM;

Вниз

TIcon => TBitmap   Найти похожие ветки 

 
Yr2 ©   (2002-05-28 12:04) [0]

Подскажите пожалуйста, как легко преобразовать изображение, хранимое в объекте TIcon в изображение, хранимое в TBitmap; желательно без записи промежуточного файла на диск.


 
Kozhanov ©   (2002-05-28 12:07) [1]

>Yr2
TMemoryStream ?


 
Yr2 ©   (2002-05-28 12:20) [2]

Изображение в TIcon и в TBitmap хранится в разных форматах. Поэтому нельзя "просто скопировать" его из одного в другое, даже используя TMemoryStream. Речь идет о ПРЕОБРАЗОВАНИИ данных из одного в другое.


 
MBo ©   (2002-05-28 12:38) [3]

DrawIcon(Bitmap.Canvas.Handle, 0, 0, hIcon);


 
Yr2 ©   (2002-05-28 13:14) [4]

>MBo
Я извиняюсь, но мне не нужно это рисовать на экране. Оба компонента (TIcon и TBitmap )созданы динамически в рунтайме и невидимы на экране. Но мне нужно "перегнать" изображение из одного компонента в другой (для того, чтобы потом продолжить определенную работу с TBitmap).


 
MBo ©   (2002-05-28 13:19) [5]

ты обратил внимание, КУДА рисуется иконка?


 
Yr2 ©   (2002-05-28 13:31) [6]

>MBo
да, обратил. для того чтобы проконтролировать (увидеть на экране) положил на форму Image1: TImage;
затем делаю следующее:
DrawIcon(Image1.Picture.Bitmap.Canvas.Handle, 0,0,Icon.Handle);
где Icon: TIcon, в котором уже лежит картинка.
но... ничего не вижу... в чем ошибка?


 
MBo ©   (2002-05-28 13:39) [7]

procedure TForm1.Button1Click(Sender: TObject);
var
h:hicon;
b:tbitmap;
begin
h:=extracticon(hInstance,PChar(Application.Exename),0);
b:=tbitmap.create;
b.width:=32;
b.height:=32;
DrawIcon(B.canvas.handle,0,0,h);
image1.picture.Assign(b);
b.free;
end;


 
McSimm ©   (2002-05-28 13:50) [8]

А можно так:

var IconInfo: TIconInfo;
begin
GetIconInfo(Icon.Handle, IconInfo);
Bitmap.Handle := IconInfo.hbmColor


 
Yr2 ©   (2002-05-28 14:19) [9]

Спасибо,MBo!
вот, елки-палки, потерял довольно много времени, а вся проблема (ошибка) была в том, что нужно было обязательно выставить width:=32; и height:=32. по-умолчанию там нули. а я думал, что оно "по-умному" размеры иконки передает...
спасибо.


 
Yr2 ©   (2002-05-28 14:46) [10]

>McSimm
да, так тоже работает, но хуже (не все прорисовывает).
я попробовал добавить к этому коду еще строчку
Bitmap.MaskHandle:=IconInfo.hbmMask;
- не помогло.



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

Текущий архив: 2002.06.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
1-17885
Tahion
2002-05-20 09:00
2002.06.06
Как printdialog1 заставить вносить имен. в настройки QuickRep1


6-18087
DSR
2002-03-26 06:27
2002.06.06
Передача файлов по сети с помощью TSocket...


1-17852
SONY
2002-05-25 10:43
2002.06.06
Как запретить доступ к ресурса в exe файле


3-17813
MaXie
2002-05-16 13:27
2002.06.06
Реален ли вертикальный фильтр в SQL-запросе?


3-17842
Hamster
2002-05-17 03:38
2002.06.06
Подскажите пожалуйста..как решить вопрос с кодировкой..