Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Включение JPEG в EXE-файл

Delphi , Файловая система , Ресурсы

Включение JPEG в EXE-файл

Пишет один фидошник другому:
- ... и вообще, чем отличается пpогpаммиpование под виндоус от пpосто пpогpаммиpования?
- Да не то, чтобы уж принципиально отличается... а представляешь, чем отличается просто секс от секса на гамаке в штормовую погоду?

Я начинающий Delphi программист и только что приступил к изучению этой замечательной среды разработчика; сейчас передо мной стоит задача распространения моей самой первой программы. Начиная с третьей версии, Delphi содержит модуль jpeg, позволяющий работать с этим форматом изображений, и у меня встала задача включить jpeg-графику в мой исполнимый файл для последующего использования в программе, но как это осуществить я пока не знаю.

Нет проблем! Выполните пять простых шагов, описанных ниже, и вы поймете все эту сложную, на первый взгляд, технологию.

Шаг первый:

Создайте файл сценария ресурса (*.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; // Объект - JPEG
  ResStream: TResourceStream; // Объект - поток ресурсов
begin
  try
    MyJPG := TJPEGImage.Create;
    ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
    MyJPG.LoadFromStream(ResStream); // Что!? Да, это просто!
    Canvas.Draw(12, 12, MyJPG);
    // сделайте это, чтобы увидеть что это действительно работает!
  finally
    MyJPG.Free;
    ResStream.Free;
  end;
end; // procedure

Обратили внимание на второй параметр процедуры CreateFromID объекта TResourceStream? Это просто индекс ресурса. Вы можете включить более одного jpeg-изображения в исполняемый модуль приложения, просто добавляя в .RC-файл строчку с другим индексом для каждого включаемого изображения.

Шаг пятый:

Вызовите процедуру, запустите программу и вуаля! Дело сделано.

Статья Включение JPEG в EXE-файл раздела Файловая система Ресурсы может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Ресурсы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
29.03.2024 16:51:34/0.033390045166016/0