Создайте текстовый файл с расширением .rc. Имя этого файла должно отличаться от имени файла-проекта или любого модуля проекта.
Файл должен содержать строку вроде:
TESTJPEG JPEG C:\Projects\Proba.JPG
где:
- TESTJPEG - имя ресурса
- JPEG - пользовательский тип ресурса
C:\Projects\Proba.JPG - путь к JPEG файлу.
Пусть например rc-файл называется MyRes.rc
Запустите BRCC32.exe (Borland Resource CommandLine Compiler) - программа находится в каталоге Bin Delphi/C++ Builder - передав ей в качестве параметра полный путь к rc-файлу.
В нашем примере:
C:\DelphiPath\BIN\BRCC32.EXE C:\ProjectPath\MyRes.rc
Вы получите откомпилированный ресурс - файл с расширением .res. (в нашем случае MyRes.res ).
Далее добавте ресурс к своему приложению.
{$R MyRes.RES}
uses Jpeg;
procedure LoadJPEGFromRes(TheJPEG : string;
ThePicture : TPicture);
var
ResHandle : THandle;
MemHandle : THandle;
MemStream : TMemoryStream;
ResPtr : PByte;
ResSize : Longint;
JPEGImage : TJPEGImage;
begin
ResHandle := FindResource(hInstance,
PChar(TheJPEG), 'JPEG');
MemHandle := LoadResource(hInstance, ResHandle);
ResPtr := LockResource(MemHandle);
MemStream := TMemoryStream.Create;
JPEGImage := TJPEGImage.Create;
ResSize := SizeOfResource(hInstance, ResHandle);
MemStream.SetSize(ResSize);
MemStream.Write(ResPtr^, ResSize);
FreeResource(MemHandle);
MemStream.Seek(0, 0);
JPEGImage.LoadFromStream(MemStream);
ThePicture.Assign(JPEGImage);
JPEGImage.Free;
MemStream.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
LoadJPEGFromRes('TESTJPEG', Image1.Picture);
end;
|