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

Вниз

Загрузка изображений из ресурсов   Найти похожие ветки 

 
Supra   (2003-07-13 23:12) [0]

Допустим есть ресурсы BMP в exe файле. Как можно загружать каждый из них по мере надобности в своей програме и выводить скажем на компоненте Image?


 
Marser ©   (2003-07-14 00:52) [1]

procedure LoadBMPfromEXE;
const RID:integer=1;//Индекс рисунка в ресурсе
var MyBMP:TBitmap;
RStream:TResourceStream;
begin
MyBMP:=TBitMap.Create;
ResStream:=nil;
try
RStream := TResourceStream.CreateFromID(HInstance,RID,RT_BITMAP);
MyBMP.LoadFromStream(RStream);
Image1.Picture.BitMap:=MyBMP;
finally
RStream.Free
end;


 
Dimaxx ©   (2003-07-14 01:04) [2]

Слишком длинно. А на что тогда есть у TBitmap следующее:

procedure LoadFromResourceID(Instance: THandle; ResID: Integer);
procedure LoadFromResourceName(Instance: THandle; const ResName: string);


 
Marser ©   (2003-07-14 01:06) [3]

Можно и так :-)


 
Юрий Зотов ©   (2003-07-14 01:17) [4]

И имеем целую кучу лишнего, а также утечку памяти.

А вот так будет проще и без утечек:
Image1.Picture.BitMap.LoadFromResourceID(HInstance, ResID)

Или:
Image1.Picture.Bitmap.LoadFromResourceName(HInstance, "MyBMP")


 
Marser ©   (2003-07-14 01:23) [5]


> Юрий Зотов ©

Просто написал первое, что вспомнил :-)


 
Юрий Зотов ©   (2003-07-14 01:31) [6]

Бывает. Я сделал иначе - запустил Delphi и посмотрел исходники VCL. Интересовала реализация TPicture.GetBitMap. После взгляда на TPicture.ForceType все стало ясно.


 
Supra   (2003-07-14 03:52) [7]

Всем:

В функции LoadFromResourceID в качестве HInstance что указывать?


 
Семен Сорокин ©   (2003-07-14 08:47) [8]

Supra (14.07.03 03:52)
указывай HInstance - Handle приложения :)



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
1-77948
Мефодий
2003-07-09 21:15
2003.07.24
Проблема с кириллицей в контролах на Windows XP


7-78170
Jura
2003-05-14 11:56
2003.07.24
портCOM где лоханулся


14-78068
Maryan
2003-07-07 19:03
2003.07.24
Нужен файл dsgnintf.dcu


3-77774
Silver_
2003-07-02 09:52
2003.07.24
ADODataSet.Filter:= (... LIKE ...) AND (... LIKE ...)


1-77856
чайниковский
2003-07-10 10:21
2003.07.24
DirectX