скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Включение 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;






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook