Календарь на Май 2024 года: calendar2008.ru/2024/may/
Навигация
Главная »  Delphi 

Ресурсы. Зачем они нужны (исходники)


Источник: Русские документы
Alar
В этой статье я хочу рассказать основы работы с ресурсами. Как всегда сначала я поясню для чего же нам нужна эти ресурсы:

  • Например для программ инсталляции (не лучший пример но), т.е. в программу можно запихать ещё пару программ.
  • Для хранения большого числа картинок.
  • Для хранения своих курсоров.
Для начала откроем программу редактора ресурсов (стандартная в составе Delphi это Image Editor). Я буду рассматривать именно этот редактор. Создадим новый ресурс File>New:>Resource File

Появится окно, в нём кликните правой кнопкой мыши и в меню выбрать New>Bitmap(картинка) или Icon(иконка) или Cursor(курсор)

В этой статье я рассмотрю Картинки в ресурсе. В начале после нажатия на New>Bitmap появиться диалог в котором мы выбираем ширину, высоту и количество цветов в картинке. Имя картинки нужно переименовать заглавными буквами ЭТО ВАЖНО. Теперь сохраним ресурс (н.р. Resource.res) в папку с проектом.

Перейдем к созданию второго ресурса с программой внутри и сразу напишем программу для доставания exe из ресурса.

  • Пишем в блокноте RC-файл, куда прописываем все нужные нам программы, например: Demo EXEFILE C:\Demo.exe
  • Компилируем его в ресурс при помощи Brcc32.exe (Brcc32.exe этот файл там, где Delphi лежит). Получаем RES-файл.
  • Далее в тексте нашей программы:
Implementation   {(знак доллара)R *.DFM}  {(знак доллара)R test.res} //Это наш RES-файл  {(знак доллара)R Resource.res} //Это ресурс для второго примера с картинками    procedure ExtractRes(ResType, ResName, ResNewName : String);  var  Res : TResourceStream;  Begin  // ResType - тип ресурса в нашем случае это программа с типом EXEFILE  // ResName - имя ресурса  // ResNewName - соответственно имя нового файла  Res:=TResourceStream.Create(Hinstance, Resname, Pchar(ResType));  Res.SavetoFile(ResNewName);  Res.Free;  end;    procedure TForm1.Button1Click(Sender: TObject);  begin  // Записывает в текущую папку Demo.exe  ExtractRes(`EXEFILE`, `Demo`, `Demo.exe`);  end;
Первый пример мы сделали давайте рассмотрим второй. Работа с картинками. Ресурс мы сделали и подключили теперь пишем процедуру для облегчения вывода изображения

procedure Bmp(var ImageNumber:TImage;ImageName:String);  var //Всякие переменные  MyBitmap:TBitmap;  MyIconsSt:String;  Begin  // ImageNumber - это имя Image куда будет грузиться картинка  // ImageName - собственно имя самой картинки  MyBitmap:= TBitmap.Create;  MyIconsSt:=ImageName;  MyBitmap.Handle:=LoadBitmap(hInstance,PChar(MyIconsSt));  ImageNumber.Picture.Bitmap:=MyBitmap;  MyBitmap.Free;  end;    procedure TForm1.Button2Click(Sender: TObject);  begin  Bmp(Image1,`BITMAP1?);  end;


 

 Изменение размеров массивов.
 Нисходящие Б-деревья в Delphi.
 Embarcadero обеспечивает возможность создания приложений для Windows 8 и OS X на базе единого исходного кода.
 Типы данных в DELPHI.
 Delphi. Kylix Delphi for Linux. Перехватчики событий, сигналы и слоты..


Главная »  Delphi 

© 2024 Team.Furia.Ru.
Частичное копирование материалов разрешено.