Подключение файла ресурсов
Для того чтобы ресурсы, находящиеся в файле ресурсов, были доступны программе, в текст программы надо поместить инструкцию (директиву), которая сообщит компилятору, что в исполняемый файл следует добавить содержимое файла ресурсов.
В общем виде эта директива выглядит следующим образом:
#pragma resource ФайлРесурсов
Где ФайлРесурсов – имя файла ресурсов.
Например, для программы flight_l директива, обеспечивающая включение содержимого файла ресурсов в выполняемый файл, выглядит так:
#pragma resource "images.res"
Загрузить битовый образ из ресурса можно при помощи метода LoadFromResourceName, который имеет два параметра: идентификатор программы и имя ресурса. В качестве идентификатора программы используется глобальная переменная Hinstance. Имя ресурса должно быть представлено в виде строковой константы.
Например, в программе flight_l инструкция загрузки фона из ресурса выглядит так:
back › LoadFromResourceName((int)Hinstance,"FACTORY");
В качестве примера в листинге 3.8 приведен фрагмент программы flight_l – функция TForm1::FormCreate, которая обеспечивает загрузку битовых образов из ресурсов.
Листинг 3.8. Загрузка битовых образов из ресурса.
// подключить файл ресурсов, в котором находятся // необходимые программе битовые образы #pragma resource "images.res" void__fastcall TForml::FormCreate(TObject *Sender) { // загрузить фоновый рисунок из ресурса back = new Graphics::TBitmap(); back › LoadFromResourceName((int)HInstance,"FACTORY"); // установить размер клиентской (рабочей) области формы //в соответствии с размером фонового рисунка ClientWidth = back › Width; ClientHeight = back › Height; // загрузить изображение объекта из ресурса sprite = new Graphics::TBitmap(); sprite › LoadFromResourceName((int)HInstance,"APLANE"); sprite › Transparent = true; // исходное положение самолета x=-20; // чтобы самолет "вылетал" из-за левой границы окна у=20; }
Преимущества загрузки картинок из ресурса программы очевидны: при распространении программы не надо заботиться о том, чтобы во время работы программы были доступны файлы иллюстраций, т. к. все необходимые программе картинки находятся в исполняемом файле.
Теперь рассмотрим, как можно реализовать в диалоговом окне программы вывод баннера, представляющего собой последовательность сменяющих друг друга картинок (кадров). Кадры баннера обычно находятся в одном файле или в одном ресурсе. В начале работы программы они загружаются в буфер (объект типа TBitmap). Вывод кадров баннера обычно выполняет функция обработки сигнала от таймера (события onTimer), которая выделяет очередной кадр и выводит его на поверхность формы.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
Вывести кадр баннера (фрагмент битового образа) на поверхность формы можно при помощи метода copyRect, который копирует прямоугольную область одной графической поверхности на другую.
Инструкция применения метода CopyRect в общем виде выглядит так:
Canvasl › CopyRect(Область1, Canvas2, Область2)
Где:
- Canvas1 – поверхность, на которую выполняется копирование;
- Canvas2 – поверхность, с которой выполняется копирование;
- Область1 – структура типа TRect, которая задает положение и размер области, куда выполняется копирование (приемник);
- Область2 – структура типа TRect, которая задает положение и размер области, откуда выполняется копирование (источник).