
- •Лабораторна робота 10
- •Мета. Навчитись розробляти програми, які працюють з графікою; створювати картинки за допомогою графічних примітивів, або ілюстрацій, створених в графічному редакторі Завдання до роботи
- •Теоретічні відомості Графічні примітиви
- •Ілюстрації
- •Запрограмувати обробку подій OnPaint та OnResize для форми.
- •Створіть проект для роботи з бітовими зображеннями.
- •Сформуйте фоновий рисунок як багатократне виведення бітового зображення на поверхню форми, використавши функцію Background() (рис. 4)
- •Виведіть зображення фону та рисунку на форму за допомогою методу Draw()
- •Завантажте бітове зображення із ресурсу програми
- •Створити файл ресурсів
- •Підключити файлу ресурсів
- •Збережіть створену програму у своїй папці.
- •Створіть ехе-файл вашої програми.
- •Продемонструйте створену форму викладачеві. Закінчіть роботу.
- •Контрольні запитання:
- •1. Назвіть основні Методи для рисування графічних примітивів
- •2. Як здійснити виведення тексту на поверхню Canvas?
-
Виведіть зображення фону та рисунку на форму за допомогою методу Draw()
void _fastcall TForml::FormPaint(TObject *Sender)
{
Canvas->Draw(0,0,back); //фон
Canvas->Draw(x,у,sprite); // рисунок }
-
Завантажте бітове зображення із ресурсу програми
Бітове зображення, яке знаходиться у виконавчому файлі програми, називається ресурсом.
Для, того щоб використати можливості завантаження картинки із ресурсу, спочатку потрібно створити файл ресурсів і помістити в нього потрібні картинки.
-
Створити файл ресурсів
Файл ресурсів можна створити за допомогою утиліти Image Editor, яка поставляється разом з C++ Builder. Запустіть Image Editor із C++ Builder, вибравши в меню Tools команду Image Editor, або із Windows, вибравши команду Пуск\Програми\Borland C++Builder\Image Editor.
Для, того щоб створити файл ресурсів, потрібно в меню File вибрати команду New\Resource File. У результаті виконання команди буде створено файл ресурсів Untitledl.res, у який потрібно помістити необхідні ресурси.
Для, того щоб у файл ресурсів додати новий ресурс, потрібно в меню Resource вибрати команду New\Bitmap. У результаті виконання цієї команди відкривається діалогове вікно Bitmap Properties, в якому потрібно встановити розмір бітового зображення і вибрати палітру. Bitmap 1 — це автоматично створене ім’я ресурсу, яке можна змінити, вибравши команду Resource Rename.
Якщо потрібна картинка вже існує у вигляді окремого файлу, то її можна через буфер обміну (Clipboard) помістити в бітове зображення файлу ресурсів. Виконується це наступним чином.
1. Спочатку потрібно запустити графічний редактор, наприклад Microsoft Paint, завантажити в нього файл картинки і виділити всю картинку або її частину. У процесі виділення потрібно звернути увагу на інформацію про розмір (у пікселях) виділеної області (Paint виводить розмір виділеної області в стрічці стану). Потім, вибравши команду Копіювати меню Правка, необхідно помістити копію виділеного фрагменту в буфер.
2. Далі потрібно переключитись в Image Editor, вибрати ресурс, в який помістити з буферу картинку, і встановити значення характеристик ресурса відповідно з характеристиками картинки. Значення характеристик ресурсу вводяться в поля діалогового вікна Bitmap Properties, яке відкривається вибором команди Image Properties меню Bitmap. Після встановлення характеристик ресурсу можна вставити картинку в ресурс, вибравши команду Past меню Edit.
Після добавлення всіх потрібних ресурсів файл ресурсу потрібно зберегти в тому ж каталозі, де знаходиться програма, для якої цей файл створений. Зберігається файл ресурсу вибором команди File\ Save\Image Editor присвоюється файлу ресурсів розширення res.
-
Підключити файлу ресурсів
Для, того щоб ресурси, що знаходяться у файлі ресурсів, були доступні програмі, в текст програми потрібно помістити директиву, яка повідомить компілятор, що у виконавчий файл потрібно додати вмістиме файлу ресурсів.
Ця директива виглядає таким чином:
#pragma resource Файл ресурсів
де файл ресурсів — ім’я файлу ресурсів.
Наприклад:
#pragma resource "images.res"
Завантажити бітове зображення із ресурсу можна за допомогою методу LoadFromResourceName, який має два параметри: ідентифікатор програми і ім’я ресурсу. У якості ідентифікатора програми використовується глобальна змінну Hinstance. Ім'я ресурсу повинно бути представлене у вигляді стрічкової константи.
// підключити файл ресурсів, в якому знаходятья необхідні програмі бітові зображення
#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;
}