top of page

Урок №2 "Креативный калькулятор".

В данном уроке мы продолжим рассматривать стандартные компоненты управления приложением. Результатом работы станет программа калькулятор.

На прошлом занятии мы познакомились с компонентами Кнопка (Button), Надпись (Label) и Текстовое поле (Edit). Все эти три компоненты используются наиболее часто при создании графических программ в том числе и при создании калькулятора. Но чтобы изучить новые элементы Lazarus мы создадим каклькулятор без использования кнопок.

Для начала разместим на форме необходимые элементы:

Один Edit

Один Label

Один CheckBox

 

Шесть RadioButton

Один TrackBar

Окно формы после добавление элементов.

Далее нужно изменить свойства элементов и расположить их в удобном порядке.

 

Элемент                       Свойство                       Значение

 

RadioButton1               Caption                                     +

 

RadioButton2               Caption                                     -

 

RadioButton3               Caption                                     /

 

RadioButton4               Caption                                     *

 

RadioButton5               Caption                                   null

 

RadioButton6               Caption                              Очистить

 

TrackBar1                           Min                                        0

 

TrackBar1                           Max                                     100

 

CheckBox1                    Caption                                  Равно

 

Edit1                                    Text                                        0

 

В итоге должно получиться примерно так.

 

Теперь необходимо добавить код, чтобы калькулятор заработал.

После служебного слова var объявим переменную V1 типа real, которая будет служить хранилищем чисел.

 

Далее переходим на форму. Для быстрого перехода между формой и окном исходного кода нажмите F12.

На форме дважды кликните по компоненте TrackBar1. Автоматически создастся процедура, которая срабатывает при изменении положения ползунка TrackBar1. Сделаем так, чтобы значение, на котором установлен ползунок, передавалось в поле Edit1. Для этого в процедуру между begin и end добавим сроку:

Edit1.Text:=IntToStr(TrackBar1.Position);

 

Теперь соединим кнопки операций с надписью.

Кликаем на RadioButton1 (её мы сделали +) и добавляем код:

Label1.Caption:='+';

Аналогичным образом добавить код в RadioButton2, RadioButton3, RadioButton4 (-, / и * соответственно).

 

RadioButton5 будет использоваться для показания неактивности кнопок операций, т.к. нельзя снять показатель выбора со всех радиокнопок одновременно.

 

Теперь напишем главную часть нашего калькулятора. Нам нужно реализовать следующий алгоритм:

1. Выбираем число.

2. Выбираем тип операции.

3. Выбираем второе число.

4. Нажимаем на галочку чекбокс (CheckBox1).

 

Напишем код для первого шага, его нужно добавить в каждую радиокнопку. Пользователь выбирает первое число и выбирает радиокнопку (RadioButton) операции. В этот момент запускается следующий код:

  V1:=StrToFloat(Edit1.Text);  //сохраняем первое число в переменную V1
  TrackBar1.Position:=0;  //обнуляем бегунок выбора числа
  Edit1.Text:=FloatToStr(V1);  //возвращаем в строку результата сохраненное число

 

Теперь пользователь выбирает второе число и нажимает на галочку равно (CheckBox1). Реализуем следующий код:

  if Label1.Caption='-' then Edit1.Text:=FloatToStr(V1-StrToFloat(Edit1.Text));
  if Label1.Caption='+' then Edit1.Text:=FloatToStr(V1+StrToFloat(Edit1.Text));
  if Label1.Caption='/' then Edit1.Text:=FloatToStr(V1/StrToFloat(Edit1.Text));
  if Label1.Caption='*' then Edit1.Text:=FloatToStr(V1*StrToFloat(Edit1.Text));

В каждой строке программа сначала считывает текст из Label1 и сравнивает его. В первой строке, например, сравнивает с минусом ('-'). Далее если совпало, то в поле Edit1 записывает результат вычисления (первое число минус второе).

В конце данной процедуры пишем следующую строчку кода:

V1:=StrToFloat(Edit1.Text);

Данная строчка возвращает в переменную V1 значение последнего вычисления.

 

Последним штрихом нашего приложения станет радиокнопка Очистить (RadioButton6). При нажатии на неё будет происходить очистка и обнуление всех основных структур и переменной. Добавляем в неё следующий код:

  V1:=0;  //обнуляем переменную
  TrackBar1.Position:=0;  //обнуляем бегунок выбора числа
  Edit1.Text:='0';  //переписываем поле Edit1
  RadioButton5.Checked:=true;  //переключаем на радиобаттно null

 

Калькулятор готов. Теперь запустите программу и протестируйте её.

Задание.

Модифицируйте программу, заменив элемент TrackBar на Edit, а все RadioButton на CheckBox.

bottom of page