Урок 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:

Результат


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



  1. alkanna
    alkanna 6 months ago
    Articulo 138 Inimeneidigh [url=https://bansocialism.com/]order cialis[/url] diunny Viagra Commander
  2. alkanna
    alkanna 2 months ago
    [url=http://vslevitrav.com/]can you get levitra cheap[/url]
  3. gmcszlhqk
    gmcszlhqk 2 months ago
    Урок 66 - Ресурсы в Delphi, (часть 2/2) - The Delphi
    <a href="http://www.g4ij7kr12j9jpu56t1g981m942v00qqws.org/">agmcszlhqk</a>
    [url=http://www.g4ij7kr12j9jpu56t1g981m942v00qqws.org/]ugmcszlhqk[/url]
    gmcszlhqk http://www.g4ij7kr12j9jpu56t1g981m942v00qqws.org/
  4. alkanna
    alkanna a month ago
    <a href="http://vslevitrav.com/">levitra prezzi[/url]</a>
  5. diopyksijc
    diopyksijc 13 days ago
    Урок 66 - Ресурсы в Delphi, (часть 2/2) - The Delphi
    [url=http://www.gwo6a7y126lejno50hjj8f1d099a1167s.org/]udiopyksijc[/url]
    <a href="http://www.gwo6a7y126lejno50hjj8f1d099a1167s.org/">adiopyksijc</a>
    diopyksijc http://www.gwo6a7y126lejno50hjj8f1d099a1167s.org/
Отменить.