1-ое: Необходимо сделать resource script file (*.RC) при помощи обычного текстового файла (например блокнота), и вписать всего одну строчку:
1 RCDATA "MyPic.jpg"
Единичка – это просто номер ресурса, RCDATA - определяет, что мы имеем дело с user-defined resource. Последнее – название файла с JPG рисунком.
2-ое: Компилируем его в.RES файл, с помощью BRCC32.EXE. В MS-DOS набираем:
BRCC32 MyPic.RC
Это должно сделать файл MyPic.RES.
Третье: Добавляем директиву компилятор в начальный код нашей программки. Она должна следовать за директивой формы, как показано тут:
{$R *.DFM}
{$R MyPic.RES}
4-ое: Добавляем последующую функцию в программку:
Код: 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
Поглядите на 2-ой параметр процедуры CreateFromID объекта TresourceStream. Это просто индекс ресурса. Вы сможете включить более, чем один jpeg в собственной программке просто добавляя новейшую строку для каждого jpeg (с другим индексом) в.RC файл
|