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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
3-17844
kserg@ukr.net
2002-05-15 12:22
2002.06.06
MSSQL-как можно число превратить в строку с ведущими нулями?


6-18079
DikobraZ
2002-03-25 19:13
2002.06.06
Сокеты


6-18077
Yuri Pipchenko
2002-03-25 14:26
2002.06.06
Telnet-клиент


3-17818
maxim2
2002-05-16 14:45
2002.06.06
Можно ли в Edit сделать форматированный ввод?


1-17943
Z-man
2002-05-27 06:38
2002.06.06
Определить скорость





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