Работа с ресурсами
Работа с ресурсами
Работа с ресурсами Первое: Нужно создать 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; ResStream: TResourceStream; Begin MyJPG:=TJPEGImage.Create; ResStream:=TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA); try MyJPG.LoadFromStream(ResStream); // ДА! Так просто :) Canvas.Draw(12,12,MyJPG); // Нарисуем на Canvas, чтобы убедиться, что все работает! finally MyJPG.Free; ResStream.Free; end; End; Посмотрите на второй параметр процедуры CreateFromID объекта TresourceStream. Это просто индекс ресурса. Вы можете включить более, чем один jpeg в своей программе просто добавляя новую строчку для каждого jpeg (с другим индексом) в .RC файл. *********************************************************** Ещё пример взятия JPEG из ресурсов: uses Jpeg; {$R test.res} function LoadJpegRes(const ID: string): TJpegImage; var RS: TResourceStream; begin Result := TJpegImage.Create; RS := TResourceStream.Create(HInstance, ID, RT_RCDATA); try RS.Seek(0, soBeginning); Result.LoadFromStream(RS); finally RS.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); var MyJpeg: TJpegImage; begin MyJpeg := LoadJpegRes('MYJPEG'); Image1.Canvas.Draw(0, 0, MyJpeg); end; ************************************************ А можно проще Выбираем в главном меню Delphi пункт Project -> Resources. В результате отображается окно ресурсов проекта. Туда можно добавить все что захотим и при компиляции проекта файл ресурсов будет автоматически создан и прилинкован к нашему экзешнику.