Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Включение JPEG в EXE-файл 2

Разговор программиста с женой. Программер:
- Ты слыхала, что через 10-15 лет станет возможным иметь секс с компьютером?
- А тебе-то что? Для тебя ничего не изменится...

1) Создайте текстовый файл с расширением ".rc". Имя этого файла должно отличаться от имени файла-пректа или любого модуля проекта. Файл должен содержать строку вроде:

MYJPEG JPEG C:\DownLoad\MY.JPG 

где: "MYJPEG" имя ресурса "JPEG" пользовательский тип ресурса "C:\DownLoad\MY.JPG" путь к JPEG файлу.

Пусть например rc-файл называется "foo.rc"

Запустите BRCC32.exe (Borland Resource CommandLine Compiler) - программа находится в каталоге Bin Delphi/C++ Builder'а - передав ей в качестве параметра полный путь к rc- файлу.

В нашем примере:

C:\DelphiPath\BIN\BRCC32.EXE C:\ProjectPath\FOO.RC 

Вы получите откомпилированный ресурс - файл с расширением ".res". (в нашем случае foo.res).

Далее добавте ресурс к своему приложению.


{Грузим ресурс} 
{$R FOO.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('MYJPEG', Image1.Picture); 
end;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay