- •Палітра Компонентів Delphi
- •Редактор Коду Delphi
- •Конструктор Форм
- •Інспектор Об’єктів. Принцип візуальної розробки програм
- •Завершення роботи з проектом та створення нового проекту
- •Збереження проекту
- •Відкриття існуючого проекту
- •Робота з Delphi-програмою Структура Delphi-програм
- •Виконання Delphi-програми
- •Завершення виконання Delphi-програми
- •Лабораторна робота №1
- •Завдання
- •Теоретичні відомості
- •Лабораторна робота №2
- •Розробка проекту «Діалог»
- •Мал. Діалог Аналіз проекту
- •Хід роботи
- •Завдання для самостійного виконання
- •Лабораторна робота №3
- •Завдання
- •Теоретичні відомості
- •Лабораторна робота №4
- •Розробка проекту «Ваша вага»
- •Хід роботи
- •Розробка проекту «Обмін валюти»
- •Хід роботи
- •Лабораторна робота №5
- •Завдання
- •Хід роботи
- •Теоретичні відомості Оператори if і case мови Паскаль
- •Кнопки-перемикачі в Delphi|
- •Лабораторна робота №6
- •Завдання
- •Хід роботи
- •Теоретичні відомості Типи даних для роботи з|із| рядками Короткі рядки типу|типа| ShortString| і String|[n]
- •Довгий рядок типу|типа| String|
- •Компонент tComboBox|
- •Компонент tBitBtn|
- •Обробка подій
- •Лабораторна робота №7
- •Розробка проекту «Гороскоп»
- •Хід роботи
- •Розробка проекту «Фізичний конвектор»
- •Хід роботи
- •Лабораторна робота №8
- •Розробка проекту «Рейтинг країн за результатами олімпійських змагань»
- •Хід роботи
- •Лабораторна робота №9
- •Розробка проекту «Журнал олімпіади»
- •Хід роботи
- •Лабораторна робота №10
- •Завдання
- •Хід роботи
- •2. Установка
- •3. Тестування створеної компоненти
- •Лабораторна робота №11
- •Розробка проекту «Побудова графіка функції»
- •Хід роботи
- •Лабораторна робота №12
- •Розробка проекту «Графічний конструктор»
- •Хід роботи
- •Лабораторна робота №13
- •Розробка проекту «Чат для локальної та глобальної мережі»
- •Хід роботи
- •Розробка форми на настройок
- •Розробка програмного коду
- •Лабораторна робота №14.
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Етапи створення баз даних в Delphi.
- •Компонент тТаblе
- •Модуль даних
- •Лабораторна робота №15
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №16
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №17
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №18
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Список літератури
Розробка проекту «Фізичний конвектор»
Завдання. Створити програму, яка переводитиме величини довжини, швидкості та часу в системні одиниці.
Аналіз проекту
Для реалізації проекту необхідно мати компонент, який дає змогу працювати з таким списком, який би за необхідності розгортався, адже в цьому проекті необхідний список має завантажуватись програмно, залежно від вибору користувача. Тут необхідний компонент СomboBox (вкладка палітри компонентів Standart) – комбінований список. Для завантаження потрібного списку скористаємось методом LoadFromFile цього компонента. Компонент СomboBox можна також використовувати для введення даних, оскільки являє собою об’єднання поля введення та поля зі списком.
Для створення цього проекту необхідно створити в будь-якому текстовому редакторі три текстові файли з різними варіантами розмірностей трьох фізичних величин (кожну розмірність розташувати в новому рядку):
Файл dov.txt файл shv.txt файл chas.txt
Км; км/год; год;
Дм; км/хв; хв.
См; м/год;
Мм; м/хв;
Ці текстові файли будуть завантажуватись у список компонента СomboBox2 під час виконання програми.
Хід роботи
Алгоритм розробки проекту
Створити папку С:\Delphi\lab_7_2.
Завантажити середовище візуального програмування Delphi.
Розмістити на формі візуальні компоненти Label1-Label5, Edit1, Edit2, СomboBox1, СomboBox2, BitBtn1, BitBtn2 з властивостями, як у таблиці 2.
Таблиця 2
Компонент |
Вкладка вікна «Інспектор об’єктів» (Object Inspector) |
Властивість (Properties)/ Подія (Events) |
Значення властивості/ обробка події (тіло процедури обробки події) |
Label1 |
Properties |
Caption |
Переведення величини в системні одиниці |
Label2 |
Properties |
Caption |
Виберіть тип величини: |
Label3 |
Properties |
Caption |
Введіть значення величини: |
Label4 |
Properties |
Caption |
Виберіть розмірність величини: |
Label5 |
Properties |
Caption |
Результат |
Combobox1 |
Properties |
Text |
Чисте поле |
Items (клікнути на кнопці з трьома крапками, що знаходяться в полі праворуч) |
У вікні вбудованого редактора списку ввести типи величин:
(кожен тип у новому рядку), для виходу з редактора клікнути на кнопці ОК |
||
Edit1 |
Properties |
Text |
Чисте поле |
Combobox2 |
Properties |
Text |
Чисте поле |
Items |
Список залишити незаповненим |
||
Edit2 |
Properties |
Text |
Чисте поле |
Bitbtn1 |
Properties |
Kind |
bkRetry |
Caption |
Очистити |
||
Bitbtn1.enabled:=true; |
Bitbtn1.enabled:=true; |
||
Bitbtn1 |
Properties |
Kind |
bkClose |
Caption |
Вихід |
Пояснення:
Властивість ItemIndex компонентів ComboBox1 та СomboBox2 передбачає номер рядка у списку (нумерація починається з нуля);
Після вибору певного типу величини до списку компонента СomboBox2 завантажується один з файлів dov.txt або shv.txt або chas.txt;
Глобальна змінна r (вона описана на верхньому рівні програми) набуває значення потрібної розмірності системних одиниць;
Після вибору значення зі списку типів величин курсор встановлюється на поле Edit1 – робота методу edit1.setfocus.
Для можливості вибору мишою із наведеного списку певного значення типу величини створити для компонента ComboBox1 процедуру обробки події OnClick:
procedure TForm1.ComboBox1Click(Sender: TObject);
var nom:byte;
begin
nom:=combobox1.ItemIndex;
combobox2.ItemIndex:=0;
case nom of
0: begin combobox2.Items.LoadFromFile('dov.txt');
combobox2.ItemIndex:=0; r:='m'; end;
1: begin combobox2.Items.LoadFromFile('shv.txt');
combobox2.ItemIndex:=0; r:='m/c'; end;
2: begin combobox2.Items.LoadFromFile('chas.txt');
combobox2.ItemIndex:=0; r:='c'; end;
end;
edit1.setfocus;
end;
Для об’єкта Edit1 забезпечити перехід на наступне поле після натискання клавіші Enter після введення даних. Для цього створити процедуру обробки події OnKeyPress:
if key=#13 then combobox2.SetFocus;
Для компонента СomboBox2 забезпечити можливість вибору розмірності зі списку та переведення введеної величини у величину в системних одиницях. Для цього створити процедуру сс
var nom1, nom2:byte; vel,result:real; v:string;
begin
vel:=strtofloat(edit1.Text);
nom1:=combobox1.ItemIndex;
nom2:=combobox2.ItemIndex;
case nom1 of
0: case nom2 of
0: result:=vel*1000;
1: result:=vel/10;
2:result:=vel/100;
3:result:=vel/1000;
end;
1: case nom2 of
0: result:=vel*1000/3600;
1: result:=vel/1000/60;
2:result:=vel/3600;
3:result:=vel/60;
end;
2:case nom2 of
0:result:=vel*3600;
1: result:=vel*60;
end;
end;
edit2.Font.Color:=clred;
str(result:5:3,v);
edit2.Text:=v+' '+r;
bitbtn1.Enabled:=true;
end;
Для кнопки «Очистити» необхідно стоворити процедуру обробки події OnClick для компонента BitBtn1:
procedure TForm1.BitBtn1Click(Sender: TObject);
var i:integer;
begin
combobox1.Text:=''; combobox2.Text:='';
edit1.Text:=''; edit2.Text:='';
for i:=1 to 3 do
begin
combobox1.Items.Delete(combobox1.ItemIndex);
end;
end;
Зберегти проект у папці С:\Delphi\lab_7_2.
Запустити проект та перевірити правильність його виконання.
Питання для самоконтролю:
1. Що таке список?
2. Яка властивість визначає кількість рядків, які одночасно відображаються в списку, що розкривається?
3. Який компонент в Delphi служить для роботи з простим списком?
4. Яка властивість визначає число колонок, які одночасно видно в області списку?
5. Яка властивість визначає наявність рамки у списку?
6. Який компонент в Delphi служить для роботи з комбінованим списком?
7. Яка властивість визначає наявність або відсутність сортування?
8. Яка властивість визначає номер вибраного елемента списку?
9. Які використовують методи для додавання елементів у список?
10. Яка властивість повертає число вибраних елементів в списку?
