Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab8 ООП.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
7 Мб
Скачать
☆

Методи об'єкта tCanvas

Поки що ми використовували тільки лінії, прямокутники і текст, але на цьому можливості об'єкта TCanvas не закінчуються.

Pixels

Перше, чим ми познайомимося, не буде методом – це властивість Pixels. Це властивість – двомірний масив, що вказує на бітову матрицю зображення. Що це значить? Найпростіше показати. Допустимо, що потрібно поставити крапку чорного кольору в координатах (10,10). Для цього пишемо наступний текст:

За допомогою цієї ж властивості можна довідатися колір у якій-небудь крапці. Наприклад:

TextWidth і TextHeight

Допустимо, що треба вивести два рядкі тексту. Ми можемо вивести один з них, а потім трохи нижче вивести інший. А от тепер саме цікаве – на скількох нижче? Адже якщо взяти занадто багато, те буде великий проміжок, а якщо занадто мало, той один рядок наїде на інший чи попросту перекриє. Ці методи дозволяють точно довідатися про довжину чи висоту тексту, у залежності від використовуваного шрифту.

Arс

Наступний метод об'єкта TCanvas – це метод Arc, що призначений для малювання дуги. У нього 8 параметрів - X1, Y1, X2, Y2, X3, Y3, X4, Y4. Це 4 пари координат X і Y, що вказують 4 крапки через який треба провести дугу.

CopyRect

Цей метод призначений для копіювання зазначеного прямокутника з одного об'єкта TCanvas в іншій. У цього методу три параметри:

Dest: TRect – область, що вказує, куди треба копіювати;

Canvas: TCanvas – це об'єкт, з якого треба копіювати;

Source: TRect - область, що вказує, відкіля треба копіювати.

Перший і останній параметр мають тип TRect. Це проста структура з чотирьох цілих чисел - Left, Top, Right, Bottom. Не важко догадатися, що це координати прямокутника. Для створення перемінної такого типу найкраще використовувати функцію Rect. Їй потрібно передати чотири цих параметри Left, Top, Right, Bottom і вона поверне вам готову структуру.

Допустимо, що в нас є дві форми. Ми хочемо з другої форми Form2 скопіювати весь її вміст у першу форму Form1. При цьому ми відобразимо вміст другої форми на першу у прямокутнику розміром (10, 10, 110, 110).

Цей код буде виглядати так:

У першому рядку заповнюємо структуру SRect за допомогою функції Rect. При цьому вказуємо повні координати вікна Form2 т.е. (0, 0, ширина другої форми, висота другої.

В другому рядку заповнюємо структуру DRect за допомогою усі тієї ж функції Rect.

І останнє - копіюємо полотно другої форми в першу. Якщо розмір області джерела більше приймача, то область буде розтягнута/стиснута до розмірів приймача. Це значить, що якщо розміри другої форми більше чим 100х100 (саме в такий квадрат на формі 1 ми хочемо скопіювати другу форму), те зображення другої форми буде стиснуто до розмірів 100х100.

Ellipse

Цей метод призначений для малювання еліпса (овалу). Є дві реалізації цього методу:

У першому випадку потрібно передати чотири координати прямокутника, у который буде вписаний еліпс. В другому випадку досить один параметр типу TRect (як ми вже знаємо, у цієї структури є всі необхідні чотири поля).

FloodFill

Заливання. У цього методу чотири параметри – Х и Y координати крапки, з яким потрібно починати заливання. Третій параметр – колір. Останній параметр – спосіб заливання.

Можливі два способи:

fsSurface – залити всю область, де колір дорівнює кольору зазначеному в третьому параметрі.

fsBorder - залити всю область, де колір не дорівнює кольору зазначеному в третьому параметрі.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]