Можливості графічної підсистеми Delphi 5
Лабораторна робота №3Робота з графікоюМета роботи: вивчити можливості графічної підсистеми Delphi 5, її властивості та принципи побудови прикладних програм з використанням графіки.Порядок роботи: Створити проект для виконання індивідуального завдання. Оформити звіт для захисту лабораторної роботи за зразкомназва роботимета роботипорядок роботикороткі теоретичні відомостіалгоритм розв’язку задачітексти відповідних модулів проектуаналіз отриманих результатів та висновкиПитання для самоконтролю1. Які класи відповідають за роботу з графікою в Delphi?2. Які графічні інструменти представлені в Delphi?3. Охарактеризуйте властивості та методи класу TCanvas.4. Які існують типи графічних зображень?5. Як завантажити на форму зображення з файлу?delphi клас графічний зображенняКороткі теоретичні відомостіСтворення зображеньУ Win32 для малювання об’єктів, які ми бачимо на екрані комп’ютера використовується інтерфейс GDI (Graphic Device Interface). До появи Delphi програміст безпосередньо працював з функціями та інструментами GDI (пером, пензлем та шрифтом) через графічний контекст вікна.Для використання графічних інструментів Windows у Delphi створені відповідні класи: для графічного контексту - клас TCanvas, для пера - TPen, для пензля – TBrush, для шрифту - TFont. Об’єкти цих класів автоматично створюються для форми і більшості видимих елементів на формі і стають доступними через властивості Canvas, Pen, Brush та Font.Наступні два приклади демонструють наскільки застосування Delphi спрощує роботу з графікою в Win32. Приклад 1 використовує стандартні GDI-функції, приклад 2 створює аналогічний малюнок засобами класів Delphi.Приклад 1procedure TForm1.FormPaint(Sender: TObject);varPaintDC : HDC;PenHandle, OldPenHandle: HPEN;BrushHandle, OldBrushHandle: HBRUSH;beginPaintDC: = GetDC(Handle);{ отримати графічний контекст форми }PenHandle: = CreatePen(PS_SOLID, 1, RGB(0, 0, 255));{ створити синє перо }OldPenHandle: = SelectObject(PaintDC, PenHandle);{ використати його у графічному контексті }BrushHandle: = CreateSolidBrush(RGB(255, 255, 0));{ створити жовтий пензель }OldBrushHandle: = SelectObject(PaintDC, BrushHandle);{ використати його у графічному контексті }Ellipse(PaintDC, 10, 10, 50, 50);{ намалювати еліпс }SelectObject(PaintDC, OldBrushHandle);{ відновити попередній пензель }DeleteObject(BrushHandle);{ знищити жовтий пензель }SelectObject(PaintDC, OldPenHandle);{ відновити попереднє перо }DeleteObject(PenHandle);{ знищити синє перо }end;Приклад 2procedure TForm1.FormPaint(Sender: TObject);beginwith Canvas do { працюємо з властивістю Canvas класу TForm }beginPen.Color: = clBlue;{ створити синє перо }Brush.Color: = clYellow;{ створити жовтий пензель }Ellipse(10, 10, 50, 50);{ намалювати еліпс }end;end;Canvas (канва, полотно) - це площа видимого елемента на формі, на якій можна малювати (графічний контекст вікна). Вона є однією з властивостей видимого елемента. Font, Pen та Brush є підвластивостями Canvas.Деякі видимі елементи не мають властивість Canvas, наприклад панелі - компоненти класу TPanel. На таких компонентах можна малювати, якщо розмістити на них спеціальну компоненту класу TPaintBox. Крім того об’єкти PaintBox можна використовувати для обмеження на формі чи на деякій компоненті ділянки малювання одним чи декількома прямокутниками.У процесі розробки проекту властивість Canvas недоступна у вікні Object Inspector. Щоб використати Canvas слід присвоїти її підвластивостям необхідні значення та викликати потрібні методи (див. приклад 2).Клас TCanvas інкапсулю...