Урок 66 - Ресурсы в Delphi, (часть 2/2)

   В Delphi поддерживаются следующие типы ресурсов

  • RT_ACCELERATOR - таблица ускорителей
  • RT_ANICURSOR - анимированный курсор
  • RT_ANIICON - анимированная икона
  • RT_DIALOG - диалоговое окно
  • RT_FONT - шрифт
  • RT_FONTDIR - набор шрифтов
  • RT_GROUP_CURSOR - коллекция курсоров
  • RT_BITMAP - коллекция курсоров
  • RT_GROUP_ICON - коллекция иконок
  • RT_HTML - HTML документ
  • RT_MENU - меню
  • RT_MESSAGETABLE - таблица сообщений
  • RT_STRING - таблица строк
  • RT_VERSION - ресурс версия ,
   Это все стандартные типы и работа с ними почти не чем не отличается от тай что мы рассматривали в прошлом уроке. В этом уроке мы рассмотрим другой механизм, позволяющий использовать ресурсы как душе угодно, не зависеть от типа и файла.

   Напишем еще одну программку, она будет распаковывать нам другую программу, пример из прошлого урока.

   Для этого создадим ресурс по инструкции из прошлого урока. Поместим пример из предыдушего урока в папку с компилятором ресурсов и под редактируем файл Res.rc:

    PROGRAM EXE Project.exe

   где Project.exe имя примера. Создадим ресурс и подключим его в новой программе, также там добавим кнопку и диалог сохранения, в обработчике на кнопке напишем следующий код:
procedure TForm1.Button1Click(Sender: TObject);
begin;
  if SaveDialog1.Execute then
    ExtractRes('EXE', 'PROGRAM', SaveDialog1.FileName);
end;
   Теперь над этим обработчиком напишем функцию ExtractRes:
procedure ExtractRes(ResType, ResName, FileName : String);
var
  Res : TResourceStream;
begin
  Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
  Res.SavetoFile(FileName);
  Res.Free;
end;
   Функция принимает значения: Тип, Имя, Куда сохранить. Создается поток в памяти где будет храниться программа, сохраняется и поток удалятся.

   Компилируем и смотрим что получилось, сохраним например на рабочий стол с названием 1.exe:

Результат


Удачи!
Встретимся в следующем уроке!



    No results found.
Отменить.