Нет проблем! Выполните пять простых шагов, описанных ниже, и вы поймете все эту сложную, на первый взгляд, технологию.
Шаг первый:
Создайте файл сценария ресурса (*.RC) в обычном текстовом редакторе типа Notepad и добавьте следующую строку:
1 RCDATA "MyPic.jpg"
Первый элемент является просто индексом ресурса. Второй элемент указывает на определенный пользователем ресурс. Третий, он же последний элемент, является именем jpeg-файла.
Шаг второй:
Для компиляции ресурса в .RES-файл используйте Borland Resource Compiler, BRCC32.EXE. В командной строке MS-DOS введите:
BRCC32 MyPic.RC
Это создаст файл ресурса с именем MyPic.RES.
Шаг третий:
Добавьте директиву компилятора к исходному коду вашей программы. Она должна располагаться непосредственно за директивой формы, как показано ниже:
{$R *.DFM} {$R MyPic.RES} |
Шаг четвертый:
Добавьте следующий код к вашему проекту (для этого я создал процедуру):
procedure LoadJPEGfromEXE; var MyJPG : TJPEGImage; // Объект - JPEGResStream : TResourceStream; // Объект - поток ресурсов begin tryMyJPG := TJPEGImage.Create;ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);MyJPG.LoadFromStream(ResStream); // Что!? Да, это просто!Canvas.Draw(12,12,MyJPG); // сделайте это, чтобы увидеть что это действительно работает!finallyMyJPG.Free;ResStream.Free;end;end; // procedure |
Обратили внимание на второй параметр процедуры CreateFromID объекта TResourceStream? Это просто индекс ресурса. Вы можете включить более одного jpeg-изображения в исполняемый модуль приложения, просто добавляя в .RC-файл строчку с другим индексом для каждого включаемого изображения.
Шаг пятый:
Вызовите процедуру, запустите программу и вуаля! Дело сделано. [000229]