Розробка проекту «Фізичний конвектор» 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Розробка проекту «Фізичний конвектор»



Завдання. Створити програму, яка переводитиме величини довжини, швидкості та часу в системні одиниці.

Аналіз проекту

Для реалізації проекту необхідно мати компонент, який дає змогу працювати з таким списком, який би за необхідності розгортався, адже в цьому проекті необхідний список має завантажуватись програмно, залежно від вибору користувача. Тут необхідний компонент СomboBox (вкладка палітри компонентів Standart) – комбінований список. Для завантаження потрібного списку скористаємось методом LoadFromFile цього компонента. Компонент СomboBox можна також використовувати для введення даних, оскільки являє собою об’єднання поля введення та поля зі списком.

Для створення цього проекту необхідно створити в будь-якому текстовому редакторі три текстові файли з різними варіантами розмірностей трьох фізичних величин (кожну розмірність розташувати в новому рядку):

Файл dov.txt файл shv.txt файл chas.txt

Км; км/год; год;

Дм; км/хв; хв.

См; м/год;

Мм; м/хв;

Ці текстові файли будуть завантажуватись у список компонента СomboBox2 під час виконання програми.

 

ХІД РОБОТИ

Алгоритм розробки проекту

1. Створити папку С:\Delphi\lab_7_2.

2. Завантажити середовище візуального програмування Delphi.

3. Розмістити на формі візуальні компоненти 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.

4. Для можливості вибору мишою із наведеного списку певного значення типу величини створити для компонента 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;

5. Для об’єкта Edit1 забезпечити перехід на наступне поле після натискання клавіші Enter після введення даних. Для цього створити процедуру обробки події OnKeyPress:

if key=#13 then combobox2.SetFocus;

6. Для компонента С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;

 

 

7. Для кнопки «Очистити» необхідно стоворити процедуру обробки події 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;

8. Зберегти проект у папці С:\Delphi\lab_7_2.

9. Запустити проект та перевірити правильність його виконання.

Питання для самоконтролю:

1. Що таке список?

2. Яка властивість визначає кількість рядків, які одночасно відображаються в списку, що розкривається?

3. Який компонент в Delphi служить для роботи з простим списком?

4. Яка властивість визначає число колонок, які одночасно видно в області списку?

5. Яка властивість визначає наявність рамки у списку?

6. Який компонент в Delphi служить для роботи з комбінованим списком?

7. Яка властивість визначає наявність або відсутність сортування?

8. Яка властивість визначає номер вибраного елемента списку?

9. Які використовують методи для додавання елементів у список?

10. Яка властивість повертає число вибраних елементів в списку?


Лабораторна робота №8

Тема: Робота з масивами у Delphi.

Мета роботи: вивчити властивості компоненту TStringGrid. Написати програму з використанням масивів.



Поделиться:


Последнее изменение этой страницы: 2016-04-18; просмотров: 310; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.134.87.95 (0.009 с.)