Урок 65 - Ресурсы в Delphiм, (часть 1/2)
Ресурс - это любой файл который может находится внутри исполняемого файла (.ехе), его можно извлекать в память программы и работать с ним, а можно и вовсе извлечь его на диск
(например чтобы предотвратить их случайное удаление пользователем, либо, чтобы защитить их от изменений). Данная статья показывает как вшить любой файл как ресурс в EXE-шнике.
Далее рассмотрим, как создать файл ресурсов, содержащий копию какого-либо файла. После создания такого файла его можно легко прицепить к Вашему проекту директивой {$R}.
Файлом ресурсов будет вот эта картинка:

Итак для того чтобы создать ресурс нам нужен текстовый файл с указаниями для компилятора ресурсов. Создадим папку и положим туда картинку и там создадим текстовый файл вот с таким содержимым:
IMAGE BITMAP logo.bmp
Теперь поясним что эта запись значит:
Первое слово - имя ресурса, второе - тип ресурса, третье - путь к файлу. Т.е. синтаксис будет таким: [Имя] [Тип] [Путь].
После редактирования сохраним наш файл по названием Res.rc, далее положим в эту же папку сам компилятор ресурсор, он лежит в папке Delphi\bin\brcc32.exe, и просто перетаскиваем файл Res.rc на brcc32.exe. После это должен появится файл Res.RES, это и есть наш готовый ресурс, хранящий в себе картинку. Если этого не произошло то можно обойтись другим способом:
Создать ТХТ-файл, написать в него: brcc32.exe Res.rc, переименовать файл в 1.bat и запустить его, должно сработать.
Все ресурс создан, теперь его надо подключить в наш EXE-шник. Делается это так:
После ключевого слова implementation пишется строка {$R Res.RES} это говорит компилятору Delphi о том что надо включить в ехе-файл наш ресурс, его необходимо положить вместе с файлом проекта. После компиляции он больше не нужен.
Далее выташим на форму компонент Image и кнопку, на ней обработчик события OnClick:
procedure TForm1.Button1Click(Sender: TObject); begin; Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'IMAGE'); end;Компилируем и вот:
Все работает, но только для файлов .bmp, о том как работать с другими файлами в следуйшем уроке.
Удачи!
Встретимся в следующем уроке!
Добавил(а): Mattew_Pharrel | Дата: 2014-08-17 | |
Жаль но у меня ни один из способов не сработал!
![]() |
Добавил(а): Mattew_Pharrel | Дата: 2014-09-08 | |
Проблема решена. Нашел сторонний редактор ресурсов - Resource Editor. Все работает/
![]() |
No results found.