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

Вниз

Использование встроеных ресурсов   Найти похожие ветки 

 
Mr.Devil ©   (2007-01-18 09:48) [0]

Пытаюсь извлечь из своего приложения, например, иконку ехе-файла, возникает ошибка "EResNotFound". Что у меня не так? Ресурс "MAINICON" точно есть.

procedure TForm1.Button1Click(Sender: TObject);
var icon:TbitMap ;
begin
 icon:=TBitMAp.Create;
 icon.LoadFromResourceName(HInstance,"MAINICON");
 form1.Canvas.Draw(0,0,icon);
 icon.Free;
end;


 
Mr.Devil ©   (2007-01-18 09:55) [1]

Вот как [url=http://delphimaster.ru/cgi-bin/faq.pl?look=1&id=988622425&n=19]тут[/url] написано тоже не работает..


 
MBo ©   (2007-01-18 10:08) [2]

MAINICON - иконка, а не битмап


 
Mr.Devil ©   (2007-01-18 10:16) [3]

Ошибка возникает здесь
icon.LoadFromResourceName(HInstance,"MAINICON");
К тому же с битмапом та же фигня получается.


 
MBo ©   (2007-01-18 10:23) [4]

метод TBitmap.LoadFromResourceName ищет ресурс с типом RT_BITMAP и именем "MAINICON", которого, естественно, нет


 
Сергей М. ©   (2007-01-18 10:42) [5]


> Mr.Devil ©   (18.01.07 10:16) [3]


Ресурс с именем "MAINICON" имеет тип RT_GROUP_ICON, а не RT_ICON.

Интересующая тебя иконка имеет ID=1, грузи ее так:

procedure TForm1.Button1Click(Sender: TObject);
var
 rs: TResourceStream;
 icon: TIcon;
begin
icon:= TIcon.Create;
rs := TResourceStream.CreateFromId(hInstance, 1, RT_ICON);
icon.LoadFromStream(rs);
self.Canvas.Draw(0,0,icon);
icon.Free;
rs.Free;
end;


 
Mr.Devil ©   (2007-01-18 11:04) [6]


> rs := TResourceStream.CreateFromId(hInstance, 1, RT_ICON);

Тоже не работает :( Пишет "Ошибка чтения по адресу 00000001"

Попробовал так:
procedure TForm1.Button1Click(Sender: TObject);
var R:TResourceStream;
   ResType: PChar;
begin
 ResType:="RT_ICON";
 R:=TResourceStream.CreateFromID(HInstance,1,ResType);
 R.Free;
end;


 
Сергей М. ©   (2007-01-18 11:10) [7]


> Mr.Devil ©   (18.01.07 11:04) [6]


> Тоже не работает


У меня все работает.


 
Mr.Devil ©   (2007-01-18 11:28) [8]

Хммм... вставил твой код, работает.. тока иконка отображается не та, что в проводнике видна, а как на досовских ехе-шниках. Но суть я понял.

И я нашел ошибку :))))
У тебя "(hInstance, 1, RT_ICON)"
А у меня "(HInstance, 1, "RT_ICON")"

Фсем спасибо! :)



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

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

Наверх




Память: 0.48 MB
Время: 0.043 c
2-1168887955
Спрашиваю!
2007-01-15 22:05
2007.02.04
Как узнать размер файла, не скачивая его?


2-1168940153
PKM
2007-01-16 12:35
2007.02.04
Работа с TStringGrid.


2-1169314081
FIL-23
2007-01-20 20:28
2007.02.04
как перевести символ в двоичный код и обратно?


2-1169130268
vitv
2007-01-18 17:24
2007.02.04
Построение запроса


15-1168462847
DillerXX
2007-01-11 00:00
2007.02.04
Win32 и ожидание