- •Лабораторна робота № 3. Тема: Програмування циклів.
- •Теоретичні відомості.
- •Завдання до лабораторної роботи
- •Хід роботи:
- •Запрограмуйте команду "Очистити поле виведення" контекстного меню.
- •"Прив'яжіть" контекстне меню PopupMenu1 до форми Form1.
- •3Апустіть створену програму та дослідіть її роботу.
- •Запрограмуйте команду "Протабулювати".
- •Варіанти індивідуальних завдань:
Лабораторна робота № 3. Тема: Програмування циклів.
Об'єкти DELPHI 7.0.: MainMenu, PopupMenu, Chart, Checkbox, GroupBox та їх властивості .
Мета роботи. Створити форму для розв'язування задачі табулювання функції . Створити у ній головне меню та контекстове меню.
Теоретичні відомості.
Об'єкт CheckBox
Об'єкт CheckBox використовують для створення незалежного дво- чи трипозиційного прапорця: увімкнено/вимкнено(недоступний). Для цього об'єкта визначені такі дві нові властивості (табл.3.1).
Таблиця 3.1. Властивості об’єктів CheckBox
Властивість |
Опис властивості |
Приклади значень |
AllowGrayed |
Наявність третьої позиції (сірий увімкнений) |
True (трипозиційний прапорець), False (двопозиційний прапорець) |
State |
Стан прапорця |
cbGrayed (сірий), cbUnchecked (вимкнений), cbChecked (увімкнений) |
Об'єкт GroupBox
Панель групи об'єктів GroupBox призначена для розміщення на ній групи із кількох об'єктів. Панель групи використовують для покращення дизайну вікна програми. Властивості цього об'єкта аналогічні до описаних вище.
Об'єкт MainMenu
За допомогою об'єкта MainMenu створюють головне меню програми. Ось деякі властивості головного меню (табл.3.2).
Таблиця 3.2. Властивості об’єкта MainMenu
Властивість |
Опис властивості |
Приклади значень |
Items |
Команди меню |
Комплексна властивість (задається у діалоговому вікні) |
Tag |
Допоміжна змінна, використовується в тексті програми |
0; 8 (ціле число) |
Об'єкт PopupMenu
За допомогою об'єкта PopupMenu створюють контекстне меню деякого компонента. Для "прив'язування" контекстного меню до конкретного об'єкта (наприклад, GroupBox) необхідно властивості PopupMenu цього об'єкта надати значення імені потрібного контекстного меню(Name). Розглянемо деякі властивості контекстного меню(табл.3.3).
Таблиця 3.3. Властивості об’єкта PopupMenu
Властивість |
Опис властивості |
Приклади значень |
Alignment
|
Вирівнювання меню відносно точки кліку правою кнопкою миші |
paCenter (по центру), paLeft (зліва), paRight (справа) |
AutoPopup |
Автоматичний виклик контекстного меню |
True (викликається кліком правою кнопки), False (викликається за допомогою методу Popup) |
Конкретна команда меню (головного чи контекстного) може мати такі властивості(табл.3.4).
Таблиця 3.4. Властивості об’єктів конкретних команд MainMenu та PopupMenu
Властивість |
Опис властивості |
Приклади значень |
Break
|
Розбиття меню у горизонтальному напрямку |
mbNone (без розбиття), mbBarBreak (розбиття з вертикальною рискою), mbBreak (розбиття без вертикальної риски) |
Shortcut |
Комбінація "гарячих" клавіш для виклику команди меню |
Ctrl+A, F8, Ctrl+F10, Shift+F3, Shift+Ctrl +F11, Ctrl+Del |
Об'єкт Chart
За допомогою об’єкта Chart будують різноманітні діаграми та графіки (рис. 3.1, 3.2). Компонент Chart має велику кількість властивостей, методі та подій. Деякі з них розглянуті нижче. Також з іншими можна ознайомитись експериментуючи з самим об’єктом та його властивостями. Повний перелік об’єктів, методів, властивостей, подій, пов’язаних з Chart, можна знайти також у довідці, включених у Delphi.
Компонент Chart є контейнером об’єктів Series — наслідників класу TChartSeries. Кожний такий об’єкт є серією даних, які мають певний стиль відображення за допомогою графіку, або діаграми. Кожен компонент Chart може включати в собі декілька серій. Якщо ви бажаєте відобразити графік, то кожна серія буде відповідати одній кривій на графіку (рис.3.1). Ви можете задавати для одного компонента Chart декілька серій однакових даних з різним типом діаграм. Тоді, роблячи в кожен момент часу активною одну з них, ви можете запропонувати користувачу вибір типу діаграми, яка відображає дані, що його цікавлять.
Рис. 3.1 Рис.3.2
Розглянемо деякі властивості об’єкту Chart(табл.3.5).
Таблиця 3.5. Властивості об’єктів Chart
Властивість |
Опис властивості |
Приклади значень |
AllowPanning |
Вмикає або вимикає можливість користувача прокручувати видиму частину графіку. |
pmNone — прокрутка заборонена, pmHorizontal, pmVertical, або pmBoth — прокрутка дозволена відповідно у горизонтальному, вертикальному, або в обох напрямах. |
AllowZoom |
Дозволяє користувачу змінювати масштаб, під час виконання програми, виокремлюючи фрагменти діаграми або графіку за допомогою миші. Якщо виокремлююча рамка розтягується мишею вниз та вправо, то масштаб фрагменту збільшиться, якщо вгору а вліво – встановиться початковий масштаб. |
True – ввімкнена, False - вимкнена |
Title |
Визначає заголовок |
Дані типу String (наприклад ‘Графік’) |
Foot |
Визначає підпис під графіком |
Дані типу String (наприклад ‘Функція sin(x)+1’) |
Frame |
Змінює тип рамки навколо діаграми |
Solid - суцільна, Dash - пунктиром, Dash Dot – штрих-пунктиром, Dash Dot Dot, Small Dots – дрібні точки |
Legend |
Легенда діаграми — список позначок |
(Задається в окремому діалоговому вікні) |
MarginLeft, MarginRight, MarginTop, MarginBottom |
Значения лівого, правого, верхнього та нижнього полів |
Дані типу Integer. |
LeftWall, BottomWall, BackWall |
Ці властивості визначають характеристики відповідно: лівої, нижньої та задньої граней області тримірного зображення графіку. |
(Задається в окремому діалоговому вікні) |
SeriesList |
Список серій даних, які відображаються на графіку. |
(Задається в окремому діалоговому вікні) |
View3d |
Дозволяє або забороняє тримірне відображення діаграми. |
True – дозволено, False - заборонено |
View3DOptions |
Характеристики тримірного відображения |
(Задається в окремому діалоговому вікні) |
Chart3DPercent |
Масштаб тримірності |
Дані типу Integer |
Поряд з багатьма переліченими властивостями в Інспекторі об’єктів розташовані кнопки позначені трьома крапками (…) які дозволяють викликати ту чи іншу сторінку Редактора Діаграм — багатосторінкового вікна, яке дозволяє задати всі властивості діаграм. Виклик Редактора Діаграм можливий також подвійним кліком на компоненті Chart, або правим кліком на ньому і вибором команди Edit у контекстному меню.
У вікні Редактора Діаграм (рис. 3.3) одразу відкрита сторінка Chart, яка має декілька закладок.
Одна з важливих є закладка Series. На закладці Series клікніть на кнопці Add — додати серію. Відкриєтьс вікно (рис. 3.4), в якому ви можете обрати тип діаграми, або графіка.
Користуючись закладкою Titles можна задати заголовок діаграми.
Закладка Legend дозволяє задати параметри відображення легенди діаграми (списку позначень) або взагалі видалити її.
Закладка Panel визначає вид панелі, на якій відображається діаграма.
Закладка 3D дозволяє змінювати зовнішній вигляд діаграми: нахил, зсув, товщину, і.т.д.
Працюючи з Редактором Діаграм, вибираючи тип діаграми, в компоненті Chart на вашій формі відображається її вигляд із заданими для неї даними. Ви одразу можете спостерігати за результатом змін різних опцій.
Рис. 3.3 а Рис.3.3б
Приклад побудови графіків
На формі, представленій на рис.3.4а, в режимі редактора, створено два об’єкта Chart і три кнопки. На першому об’єкті Chart обрано шаблони для побудови двох графіків з використанням ліній Series1 та Series2 . На першому об’єкті Chart Series1
Рис. 3.4 а
Рис. 3.4б
Процедура, що реалізує роботу кнопки «Графік двох функцій».
procedure TForm1.Button1Click(Sender: TObject);
var x,y:real; i:integer;
begin
//Побудова графіків двох функцій в одній системі координат
x:=0;
for i:=0 to 9 do begin
y:=ln((1+x)/(1-x)) ;
Series1.AddXY(x,y,'',clBlue);
Series2.AddXY(x,2*y,'',clGreen);
x:=x+0.1;
end;
end;
Процедура, що реалізує роботу кнопки «Графік однієї функції».
procedure TForm1.BitBtn1Click(Sender: TObject);
var x,y:real; i:integer;
begin
//Побудова графіку функції в іншому об'єкті Chart на формі, в якій
// вже побудовані графіки двох функцій в іншому об'єкті Chart
x:=0;
for i:=0 to 9 do begin
y:=x*x ;
Series3.AddXY(x,y,'',clBlue);
x:=x+0.1;
end;
end;
Процедура, що реалізує роботу кнопки «Видалити графік ».
procedure TForm1.BitBtn3Click(Sender: TObject);
var i:integer;
begin
//Очищення об'єкту Chart на формі від побудованого графіку
for i:=0 to Chart2.SeriesCount-1 do Chart2.Series[i].Clear;
end;