Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабораторна робота 9
Тема. Графіка в C++ Builder
Мета. Навчитись розробляти програми, які працюють з графікою; створювати картинки за допомогою графічних примітивів, або ілюстрацій, створених в графічному редакторі
Завдання до роботи
Задача 1. Побудова графіка функції. Використовуючи властивість Pixels, побудувати графік функції у = 2 sin(x) e*/5. Границі діапазону зміни аргумента функції є вхідними даними. Діапазон зміни значень функції повинен обчислюватися під час роботи програми. На основі цих даних програма обчислює масштаб, який дозволяє побудувати графік таким чином, щоб він займав всю область форми, призначену для виведення графіка. Для побудови графіка використати всю доступну область форми, причому якщо під час работи програми користувач змінить размір вікна, то графік повинен виводитись заново з врахуванням реальних размірів вікна.
Задача 2. Вивести ілюстрацію, яка заходиться у файлі з розширенням bmp, jpg или ico, за допомогою компоненти image. Виконати масштабування ілюстрації у відповідності з реальними розмірами компоненти.
Задача 3.
Для формуровання складних зображень використовують бітові зображення. Бітові зображення це, як правило, невелика картинка, якя заходиться в памяті компютера.
Сформувати бітове зображення шляхом завантаження із bmp-файлу або із ресурсу, а також шляхом копіювання фрагменту із іншого бітового зображення, в тому числі і з поверхності форми.
Створити фоновий рисунок як багатократне виведення бітового зображення на поверхню форми.
Реалізувати програму «Політ над містом», у якій бітові зображення фону та обєкта завантажуються із файлу. Картинки бітових зображень підготовити за допомогою графічного редактора.
Теоретічні відомості
Графічні примітиви
Графічні зображення в C++ Builder можна виводити на поверхню форми (або компоненти image), якій відповідає властивість canvas. Для, того щоб на поверхні форми або компоненти image з'явилася лінія, коло, прямокутник або інший графічний елемент (примітив), необхідно для властивості Canvas застосувати відповідний метод (таблиця 1).
Наприклад, оператор Forml->Canvas->Rectangle(10,10,50,50); рисує на поверхні форми прямокутник.
Таблиця 1. Методи для рисування графічних примітивів
Метод |
Опис |
LineTo(x,y) |
Малює лінію поточної в вказаними координатами |
Rectangle (x1,y1,x2, y2) |
Малює прямокутник, де x1, y1 і х2, у2 координати лівого верхнього і правого нижнього кутів прямокутника. Колір і внутрішньої області прямокутника можуть бути різними. Замість четирьох параметрів координат двох діагональних кутів прямокутника методу Rectangle можно передавати один параметр структуру типу TRect. Наступний фрагмент коду демонструє використання структури Trect: TRect ret; // прямокутна область ret.Top = 10; ret.Left = 10; ret.Bottom = 50; ret.Right = 50; Canvas->Rectangle(ret); // намалювати прямокуник |
FillRect (x1,y1,x2,y2) |
Малює прямокутник, де x1, y1, х2, у2 визначають координати діагональних кутів |
FrameRect(x1,y1,x2,y2) |
Малює контур прямокутника, x1, y1, х2, у2 визначають координати діагональних кутів |
RounRect (x1,y1,x2,y2,x3,y3) |
Малює прямокутник заокругленими кутами |
Ellipse (x1,y1,x2,y2) |
Малює еліпс або коло, де x1, y1, х2, у2 координати прямокутника, і якого малюється еліпс або, якщо прямокутник є квадратом, коло |
Polyline (points, n) |
Малює ламану лінію, points масив типу TPoint. Кожним елементом масиву є запис, полями якого є координати точки перегину ламаної; n кількість ланок ламаної. Метод Polyline малює ламану лінію, послідовно сполучаючи прямими відрізками крапки, координати яких знаходяться в масиві: першу з другою, другу з третьою, третю з четвертою і так далі |
MoveTo(х,y) |
Переміщає карандаш в потрібну точку графічої поверхні |
Polygon(p,n) |
Малює багатокутник, де р масив записів типу TPoint, який містить координати вершин багатокутника; n кількість вершин. |
Arc(xl,yl,х2,у2,х3,у3, х4,у4) |
Метод рисує дугу частину еліпса (кола). Параметри x1, y1, х2, у2 визначають еліпс (коло), частиною якого є дуга. Параметри х3 і у3 задають початкову, а х4 і у4 кінцеву точку дуги. Початкова (концева) точка дуги це точка перетину границі еліпса і прямої, проведеної із центру еліпса в точку з координатами х3 і у3(х4, у4). Метод малює дугу проти часової стрілки |
Pie(x1,y1,х2,у2,х3,у3,х4,у4) |
Малює сектор еліпса або круга. Параметри x1, y1, x2, y2 визначають еліпс (круг), частиною якого є сектор; х3, у3, х4 і у4 прямі границі сектора. Початкова точка границі співпадає з центром еліпса. Сектор вирізається проти часової стрілки віссю прямої, заданої точкою з координатами (х3, у3), до прямої, заданої точкою| з координатами (х4, у4) |
Методи виводу графічних примітивів розглядають властивість canvas як деяке абстрактне полотно, на якому можна малювати (Canvas перекладається як "поверхня" для малювання). Полотно складається із окремих точок пікселів. Положення піксел на поверхні форми характеризується горизонтальною (X) і вертикальною (Y) координатами (рис. 1).
Рис. 1. Координати точок поверхні форми
Методи рисування графічних примітивів забезпечують лише рисування. Вигляд графічного елементу визначає властивість Реn(карандаш) і Brush (пензель) тієї поверхні (Canvas), на якій рисує метод.
Олівець і пензель є властивостями обєкта Canvas, в свою чергу є обєктами Реn і Brush (таблиця 2, таблиця 3).
Таблиця 2. Властивості обєкта Реn (олівець)
Властивість |
Опис |
Color |
Колір лінії |
Width |
Товщину лінії (задається в пикселях) |
Style |
Вид лінії (psSolidсуцільна; psDashпунктирна, довгі штрихи; psDot пунктирна, короткі штрихи; psDashDot пунктирна, чергування довгого і короткого штрихів; psDashDotDot пунктирна, чергування одного довгого і двох коротких штрихів; psClear лінія не відображується (використовується, якщо не треба ати області наприклад, прямокутника) |
Таблиця 3. Властивості обєекта Brush (кисть)
Властивість |
Опис |
Color |
Колір замкнутої області |
Style |
Стиль заповнення області (bsSolid суцільна заливка. Штрихування: bsHorizontal горизонтальна; bsVertical вертикальна; bsFDiagonal діагональна з нахилом ліній вперед; bsBDiagonal діагональна з нахилом ліній назад; bsCross в ку; bsDiagCross діагональна клітинка |
Будь-яка картинка можуть розглядатися як сукупність графічни примітивів: точок, ліній, кіл, дуг і ін.
Текст
Виведення тексту на поверхню графічного обєкта забезпечує метод TextOutA:
Canvas->TextOutA(x,y,TEКСТ)
Параметр ТЕКСТ задає текст. Параметри х і y визначають координати точки поверхні, в якій виконується виведення тексту.
Шрифт, який виводиться для виведення тексту, визначається значенням властивості Font відповідного обєкта canvas. У таблиці 3 перераховані властивості обєкта TFont.
Таблиця 3. Властивості обєкта TFont
Властивість |
Опис |
Name |
Назва шрифта (наприклад, Arial) |
Size |
Розмір шрифта в пунктах. Пункт це одиниця вимір розміру шрифту, яка використовується в поліграфії. Один пункт рівний 1/72 дюйми |
Style |
Стиль зображення символів. Можливо: нормальним, напівжирним, курсивним, підкресленим, перекресленим. Стиль задається за допомогою наступних констант: fsBold (напівжирний), fsltalic (курсив), fsUnderline (підкреслений), fsStrikeOut (перекреслений). Властивість style є , що дозволяє комбінувати необхідні стилі. Наприклад, напівжирний курсив виглядає так: |
Color |
Колір символів. Як значення можна використовувати константу тип TColor |
Textwidth, TextHeight |
Задають ширину і висоту області виведення тексту |
Інколи потрібно вивести будь-який текст після повідомлення, довжина якого під час розробки невідома. В цьому випадку необхідно знати координати правої границі області виведеного тексту. Координати правої границі тексту, який виводиться методом TextOutA, можна одержати за допомогою методу PenPos.
Наступний фрагмент коду демонструє можливість виведення тексту за допомогою двох конструкцій:
Canvas->TextOutA(10,10,"Borland");
Canvas->TextOutA(Canvas->PenPos.x, Canvas->PenPos.y, "C++Builder");
Ілюстрації
Найпростіше вивести іллюстрацію, яка знаходиться у файлі з розширенням .bmp, .jpg або .ico, можна за допомогою компоненти image. Основні властивості компоненти наведені в таблиці 4.
Таблиця 4. Властивості компоненти image
Властивість |
Опис |
Picture |
Ілюстрація, яка відображується в полі компоненти |
Width, Height |
Розмір компоненти. Якщо розмір компоненту менше розміру ілюстрації і значення властивостей AutoSize, Strech і Proportional рівне false, то відображується частина ілюстрації |
Proportional |
Ознака автоматичного масштабування картинки без спотворення. Щоб масштабування було виконане, значення властивості AutoSize має бути false |
Strech |
Ознака автоматичного масштабування ( або розтягування) ілюстрації відповідно до реального розміру компоненти. Якщо розмір компоненти не пропорційний розміру ілюстрації, то ілюстрація буде спотворена |
AutoSize |
Ознака автоматичної зміни розміру компоненти відповідно до реального розміру ілюстрації |
Center |
Ознака визначає розташування картинки в полі компоненту по горизонталі, якщо ширина картинки менше ширини поля компоненти. Якщо значення властивості рівне false, то картинка притиснута до правої компоненти, якщо true то картинка розташована по центру |
Visible |
Ознака , чи відображується компонента і, відповідно, ілюстрація на поверхні форми |
Canvas |
Поверхня, на яку можна вивести графіку |
Хід роботи:
Задача 1. Побудова графіка функції. Використовуючи властивість Pixels, побудувати графік функції у = 2 sin(x) e*/5. Границі діапазону зміни аргумента функції є вхідними даними. Діапазон зміни значень функції повинен обчислюватися під час роботи програми. На основі цих даних програма обчислює масштаб, який дозволяє побудувати графік таким чином, щоб він займав всю область форми, призначену для виведення графіка. Для побудови графіка використати всю доступну область форми, причому якщо під час работи програми користувач змінить размір вікна, то графік повинен виводитись заново з врахуванням реальних размірів вікна.
float f(float х)
{return 2*sin(x)*exp(x/5); }
void TForml::Grafik()
{
float xl, x2; // границі зміни агрумента функцій
float yl, y2; // границі зміни значення функції
float x; // аргумент функції
float у; // значення функції в точці х
float dx; // приріст аргумента
int 1, Ь; // лівий нижній кут області виведення графік
int w, h; // ширина и висота області виведення графіка
float mx, my; // масштаб по осям X і Y
int xO, уО; // початок координат
// область виведення графіка
1-10; // X - координата лівого верхнього кута
b = Forml->ClientHeight-20; // Y координата лівого нижнього кута
h = Forml->ClientHeight-40; // висота
w = Forml->Wldth - 20; // ширина
xl = 0; // нижня границя діапазона аргумента
х2 = 25; // верхня границя діапазона аргумента
dx = 0.01; //крок аргумента
// знайдемо максимальне и мінімальне значення функції на відрізку [xl,x2]
x = xl;
yl = f(х); // мінімум
у2 = f(x); // максимум
do
{
у = f(х);
if ( у < yl) yl = у;
if ( у > у2) у2 = у;
х += dx; } while (x <= х2);
// обчислюємо масштаб
my = (float)h/abs(y2-yl); // масштаб по осі Y
mx = w/abs(x2-xl); // масштаб по осі X
// осі
хО = 1+abs(xl*mx);
уО = b-abs(yl*my);
Canvas->MoveTo(xO,b);Canvas->LineTo(xO,b-h);
Canvas->MoveTo(l,yO);Canvas->LineTo(1+w,yO);
Canvas->TextOutA(xO+5,b-h,FloatToStrF(y2,ffGeneral,6,3));
Canvas->TextOutA(xO+5,b,FloatToStrF(yl,ffGeneral, 6,3));
// побудова графіка
x = xl; do {
У = f (x);
Canvas->Pixels[xO+x*mx][yO-y*my] = clRed;
x += dx;
}
while (x <= x2);
}
void__fastoall TForml::FormPaint(TObject *Sender)
{
Grafik();
}
void __fastcall TForml::FormResize(TObject *Sender)
{
TRect ret = Rect(0,0,Ciientwidth,CiientHeight);
Canvas->FillRect(ret); // стерти Grafik();
}
Рис. 2. Графік, побудований по точках
Задача 2. Вивести ілюстрацію, яка заходиться у файлі з розширенням bmp, jpg или ico, за допомогою компоненти image. Виконати масштабування ілюстрації у відповідності з реальними розмірами компоненти.
Рис. 3. Діалогове вікно програми Перегляд ілюстрацій
AnsiString aPath; // каталог, в якому знаходиться файл
TSearchRec aSearchRec; // результат пошуку файла
void __fastcall TForml::FormCreate(TObject *Sender)
{
aPath = ""; // поточний каталог, з якого запущена програма
Imagel->AutoSize = false;
Imagel->Proportional = true;
Button2->Enabled = false;
FirstPicture(); // показує картинку, яка є в каталозі
}
void __fastcall TForml::ButtonlClick(TObject *Sender)
{
if (SelectDirectory("Виберіть каталог, в якому знаходиться файл", "",aPath) != 0)
{aPath = aPath + "\\";
FirstPicture(}; // вивести картинку
}
}
void TForml::FirstPicture()
{
Imagel->Visible = false; // скрыть компонент Imagel
Button2->Enabled = false; // кнопка Дальше недоступна
Labell->Caption = "";
if ( FindFirst(aPath+ "*.jpg", faAnyFile, aSearchRec) == 0)
{
Imagel->Picture->LoadFromFile(aPath+aSearchRec.Name);
Imagel->Visible = true;
Labell->Caption = aSearchRec.Name;
if ( FindNext(aSearchRec) == 0) // найти след, иллюстрацию
{
// иллюстрация есть
Button2->Enabled = true; // теперь кнопка Дальше доступна
} }
}
Задача 3.
Для формуровання складних зображень використовують бітові зображення. Бітові зображення це, як правило, невелика картинка, якя заходиться в памяті компютера.
Сформувати бітове зображення шляхом завантаження із bmp-файлу або із ресурсу, а також шляхом копіювання фрагменту із іншого бітового зображення, в тому числі і з поверхності форми.
Створити фоновий рисунок як багатократне виведення бітового зображення на поверхню форми.
Реалізувати програму «Політ над містом», у якій бітові зображення фону та обєкта завантажуються із файлу. Картинки бітових зображень підготовити за допомогою графічного редактора.
Теоретичні відомості
У програмі битове зображення це обєкт типу TBitmap. Деякі властивості обєкта TBitmap наведені в таблиці. 5.
Завантаження картинки із файлу забезпечує метод LoadFromFile, якому в якості параметра передається імя имя bmp-файлу. Наприклад, наступний фрагмент коду забезпечує створення і завантаження бітового зображення із файлу.
Graphics: :TBitmap *Plane = new Graphics: :TBititiap();
Plane->LoadFromFile("plane.bmp");
У результаті виконання наведеного вище фрагменту, бітове зображення Plane представляє зображення літака (передбачається, що у файлі plane.bmp знаходиться зображення літака).
Таблиця 5. Властивості обєкта TBitmap
Властивість |
Опис |
Height, Width |
Розмір (ширина, висота) бітового зображення. Значення властивостей відповідають розміру завантаженою файлу (метод LoadFromFile) або ресурсу (метод LoadFromResourcelD або LoadFromResourceName) картинки |
Empty |
Ознака того, що картинка в бітове зображення не завантажена (true) |
Transparent |
Встановлює (true) режим використання "прозорого" кольору. При бітового зображення методом Draw елементів картинки, колір яких збігається кольором TransparentColor, не виводяться. За замовчуванням значення TransparentColor визначає колір лівого нижнього пиксела |
TransparentColor |
Задає прозорий колір. Елементи картинки, забарвлені цим кольором, методом Draw не виводяться |
Canvas |
Поверхня бітового зображення, на якому можна малювати точно так, як і на поверхні форми або компоненту image |
Після того як бітове зображення сформовано (завантажено із файлу або із ресурсу), його можна вивести, наприклад, на поверхню форми або компоненту image. Зробити це можно, використавши метод Draw до властивості Canvas. У якості параметрів методу Draw потрібно передати координати точки. Наприклад, оператор
Canvas->Draw(10,20,Plane);
виводить на поверхню форми бітове зображення plane зображення літака.
Якщо перед застосуванням методу Draw властивості Transparent бітового зображення присвоїти значення true, то фрагменти рисунка, колір яких співпадає з кольором лівої нижньої точки рисунка, не будуть виведені. "Прозорий" колір можна задати і примусово, присвоївши відповідне значення властивості TransparentColor.
Завантаження і виведення бітових зображень на поверхню форми виконує функція обробки події onPaint. Інструкція застосування методу CopyRect в загальному вигляді наступна:
Canvasl->CopyRect(Область1, Canvas2, Область2)
де:
Функції Rect потрібно передати в якості параметрів координати лівого верхнього і правого нижнього кута області, функції Bounds координати лівого верхнього кута і розмір області. Наприклад, якщо потрібно визначити прямокутну область, то це можно зробити так:
ret = Rect(x1,y1,x2,y2) або так: ret = Bounds(x1,y1,w,h)
де x1, y1 координати лівого верхнього кута області; х2, у2 координати правого нижнього кута області; w і h ширина і висота області.
Рис 4. Фоновий рисунок і бітове зображення-плитка
Оголошення функції (прототип), бітового зображення (обєкт типу TBitmap) розмістіть в розділ private оголошення класу форми, який знаходиться у файлі заголовків.
Class TForml : public TForm
{
_published|:
void __fasteal1 FormCreate (TObject *Sender);
void __fastcall FormPaint (TObject *Sender);
void __fastcall FormResize (TObject *Sender);
private:
Graphics::TBitmap *back; // елемент фонового рисунка|
void __fastcall Background(); // формує фоновий| рисунок на поверхні форми
public:
_fastcall TForml (TComponent* Owner);
};
// функція обробки події OnCreate
void __fastcall TForml::FormCreate(TObject *Sender)
{
back = new Graphics::TBitmap(); // створити обєкт бітове зображення
// завантажити картинку
try
{
Forml->back->LoadFromFile("Legal.bmp");
}
catch (EFOpenError &e)
{
return;
}
}
// формує фоновий рисунок
void __fastcall TForml::Background()
{
int x=0,y=0; // координати лівого верхнього кута бітового зображення
if ( back->Empty) // бітове зображення не було загружено
return;
do
{
do
{
Canvas->Draw(x,y,back); x += back->Width;
}
while (x < ClientWidth); x = 0;
у4= back->Height;
}
while (у < ClientHeight);
}
// функція обробки події OnPaint
void __fastcall TForml::FormPaint (TObject *Sender)
{
Background(); // відновить фоновий рисунок
}
Зображення обекта виводиться застосуванням методу Draw до властивості Canvas форми, а стирається шляхом копіювання (метод CopyRect) потрібної частки фону з буфера в бітове зображення.
Форма програми наведена на рис. 6.
Рис. 5. Форма програми "Політ над містом"
Відновлення фону виконується за допомогою методу copyRect, який дозволяє виконати копіювання прямокутного фрагмента одного битового зображення в інше. У якості параметрів методу передаються: координати і розмір області, куда повинно бути виконано копіювання; поверхня, з якої повинно бути виконано копіювання; положення і розмір області, що копіюється.
void __fastoall TForml::TimerlTimer(TObject *Sender)
{
TRect badRect; // положення і розмір області фону, яку потрібно відновити
badRect = Rect(x,y,x+sprite->Width,y+sprite->Height);
// стерти літак, відновити фон
Canvas->CopyRect(badRect,back->Canvas,badRect);
// обчислимо нові координати картинки
х +=2;
if (х > ClientWidth)
{
// літак вилетів за границю форми
// змінити висоту і швидкість польоту
х = -20;
у = random(ClientHeight 30); // висота польоту
// швидкість польоту визначається періодом виникнення
// події OnTimer, яка, в свою чергу, залежить від значення властивості Interval
Timerl->Interval = random(20) + 10;
// швидкість польоту міняється від 10 до 29
}
Canvas->Draw(х,у,sprite);
}
void _fastcall TForml::FormCreate(TObject *Sender)
{
// завантажить фоновий| рисунок із bmp-файлу
back = new Graphics::TBitmap();
back->LoadFromFile("factory.bmp");
// відновить розмір рабочої області форми у відповідності з розміром фонового рисунка
GlientWidth = back->Width;
ClientHeight = back->Height;
// завантажить картинку
sprite = new Graphics::TBitmap();
sprite->LoadFromFile("aplane.bmp");
sprite->Transparent = true;
// вихідне положення літака
x=-20; // щоб літак вилітав із-за лівої границі вікна
у=20;
}
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;
}
Контрольні запитання:
1. Назвіть основні Методи для рисування графічних примітивів
2. Як здійснити виведення тексту на поверхню Canvas?
3. Перерахуйте властивості обєкта TFont.
4. Як вивести готову ілюстрацію на поверхню обєкта ?
5. Для чого використовується метод метод LoadFromFile ?
6. Яка функція здійснює завантаження і виведення бітових зображень на поверхню форми виконує