Народна Освіта » Інформатика » § 46. Графічні компоненти

НАРОДНА ОСВІТА

§ 46. Графічні компоненти

Під час конструювання форми для створення візуальних ефектів і зображень можна використовувати такі графічні компоненти, як зображення Image і автофігура Shape.

Автофігури (Shape)

Компонент Shape(Автофігури) міститься на вкладці Additional

Палітри компонентів і призначений для виведення геометричних фігур.

Вигляд фігури, що виводиться цим компонентом, визначається властивістю Shape. Форму фігури можна вибрати в списку властивості Shape (рис. 46.1) у вікні Інспектор об'єктів (рис. 46.2).

 

 

Щоб задати розміри фігури, у вікні Інспектор об'єктів встановлюють значення властивостей Height і Width. Для точного розміщення фігури на формі призначені властивості Left і Top.

Ви вже знайомі з властивостями Pen і Brush полотна Canvas компонента Image. Аналогічні властивості має і компонент Shape.

Властивість Pen визначає колір і стиль контуру фігури. Властивість Brush визначає стиль і колір зафарбованої фігури. Значення цих властивостей можна задати як у вікні Інспектор об'єктів, так і програмним способом.

 

Змінити значення властивостей компонен та Shape програмним шляхом за зразком (рис. 46.3).

With Shapel do begin Shape := stEllipse;

Pen.Color := clBlue;

Pen.Width := 3;

Brush.Color := clRed;

Brush.Style := bsDiagCross; end;

Переміщення об'єктів мишею

Розглянемо алгоритм переміщення об’єкта за допомогою миші. Для переміщення об’єкта треба:

1) натиснути ліву кнопку миші на об’єкті (подія MouseDown);

2) перемістити вказівник при натиснутій кнопці миші (подія MouseMove);

3) відпустити кнопку миші (подія MouseUp).

Щоб запрограмувати переміщення по формі об’єкта Shapel, треба створити для нього процедури обробки подій: onmousedown (натиснення кнопки миші, коли вказівник миші знаходиться в області об’єкта), OnMouseMove (переміщення миші), onmouseup (відпускання кнопки миші). Текст програми буде таким: var

Forml: TForml;

xl, yl: Integer; // опис глобальних змінних flag: Boolean = False; // кнопка миші не натиснута implementation {$R * .lfm}

procedure TForml.ShapelMouseDown (Sender: TObject; Button:

TMouseButton; Shift: TShiftState; x, y: Integer);

begin

x1 := x; y1 := y; // запам'ятовування поточних координат вказівника миші flag := True; // кнопка миші натиснута end;

procedure TForml.ShapelMouseMove (Sender: TObject; Shift: TShiftState; x, y: Integer);

begin

If flag Then // якщо кнопка миші натиснута begin

Shapel.Left := Shapel.Left + x - x1;

Shapel .Top := Shapel .Top + y - y1; end; end;

procedure TForml.ShapelMouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; x, y: Integer);

begin

flag := False; // кнопка миші не натиснута end;

Розглянемо роботу процедур даного проекту. Якщо кнопку миші натиснуто в момент, коли вказівник знаходиться в області об’єкта Shapel, то в процедурі ShapeIMouseDown змінним xl, yl будуть надані значення координат вказівника, а змінній flag — значення True. Якщо не відпускати кнопку миші й перетягувати об’єкт, то в процедурі ShapeIMouseMove відбувається перерахунок координат об’єкта Shapel відносно системи координат форми. Якщо кнопку миші відпустити, то виконається процедура ShapeIMouseUp, в якій змінна flag набуде значення False, і перетягування завершиться.

г Розробити гру «Конструктор», створивши процедури обробки подій onmousedown, OnMouseMove, onmouseup для компонентів Shape

(рис. 46.4).

 

І Питання для самоперевірки

І 1. Для чого призначений компонент Shape?

І 2. Яка властивість компонента Shape визначає форму автофігури?

І 3. Як змінити розміри; колір заливки; контур автофігури?

4. Які події відбуваються під час натиснення; переміщення; відпускання миші?

5. Як запрограмувати переміщення об’єкта за допомогою миші?

І Вправа 46

І Скласти програму, у якій реалізовано відображення на формі п’яти різних геометричних фігур (рис. 1).

 

і 1) Створіть новий проект. Змініть заголовок форми на «Стилі заповнення Shape». Розмістіть на формі п’ять компонентів Shape.

2) Надайте фігурам вигляду: прямокутника (stRectangle); кола (stCircle); еліпса (stElipse); квадрата (stSquere); прямокутника із заокругленими кутами (stRoundRect).

3) Змініть контур фігур, використовуючи властивості Pen.Color, Pen.Width, Pen.Style.

4) Залийте фігури потрібними кольором та стилем, використовуючи властивості Brush.Color, Brush.Style.

5) Перевірте роботу програми. Збережіть проект у папці Вправа 46.

6) Створіть процедури обробки подій onmousedown, OnMouse-Move, onmouseup для будь-якої автофігури.

Комп’ютерне тестування

Виконайте тестове завдання 46 з автоматичною перевіркою на сайті interactive.ranok.com.ua.

 

Це матеріал з підручника Інформатика 8 клас Бондаренко

 

Категорія: Інформатика

Автор: admin от 7-10-2016, 22:47, Переглядів: 4618