Lazarus IDE
Основы программирования в среде Lazarus для учащихся 10-11 классов
Урок №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.