Первое:
Нужно создать resource script file (*.RC) с помощью простого текстового файла (например блокнота), и вписать всего одну строку:
1 RCDATA "MyPic.jpg"
Единичка – это просто номер ресурса, RCDATA - определяет, что мы имеем дело с user-defined resource. Последнее – имя файла с JPG рисунком.
Второе:
Компилируем его в .RES файл, при помощи BRCC32.EXE. В MS-DOS набираем:
BRCC32 MyPic.RC
Это должно создать файл MyPic.RES.
Третье:
Добавляем директиву компилятор в исходный код нашей программы. Она должна следовать за директивой формы, как показано здесь:
{$R *.DFM}
{$R MyPic.RES}
Четвертое:
Добавляем следующую процедуру в программу:
Код:
procedure LoadJPEGfromEXE;
var
MyJPG : TJPEGImage; // JPEG
ResStream : TResourceStream; // Resource Stream
begin
MyJPG := TJPEGImage.Create;
ResStream := nil;
try
ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
MyJPG.LoadFromStream(ResStream); // ДА! Так просто :)
Canvas.Draw(12,12,MyJPG); // Нарисуем на Canvas, чтобы убедиться, что все работает!
finally
MyJPG.Free;
ResStream.Free;
end;
end; // procedure
Посмотрите на второй параметр процедуры CreateFromID объекта TresourceStream. Это просто индекс ресурса. Вы можете включить более, чем один jpeg в своей программе просто добавляя новую строчку для каждого jpeg (с другим индексом) в .RC файл