Создадим многострочный калькулятор, в котором аргументы (числа) и знак операции будут вводиться в отдельные редакторы. Для этого соберём такую конструкцию:
В редактор Edit1 будет вводиться первое число (X), в Edit3 второе число (Y), в Edit2 будет вводиться знак операции, а на Label4 будет отображаться результат вычислений.
Кнопка Button1 будет использоваться для вычислений (присвоим ей свойство caption '='), а кнопка Button2 для очистки содержимого калькулятора (присвоим ей свойство caption 'Сброс').
Двойным щелчком на кнопке Button2 создадим событие очистки содержимого полей калькулятора:
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text:= '';
Edit2.Text:= '';
Edit3.Text:= '';
Label4.Caption:= '';
Edit1.SetFocus; //Устанавливаем курсор в верхний редактор Edit1
end;
При запуске программы и нажатии на кнопку "Сброс", все поля калькулятора очистятся.
Далее, двойным щелчком на кнопке Button1 создадим обработчик события вычисления. Для вычислений нам понадобятся переменные X, Y - для аргументов и Z - для хранения результата. Переменные типа real. Ещё одна переменная С, типа char, будет нужна для хранения знака операции.
procedure TForm1.Button1Click(Sender: TObject);
var
x, y, z: real;
c: char;
begin
x:= StrToFloat(Edit1.text);
y:= StrToFloat(Edit3.text);
c:= Edit2.text[1];
case c of
'+' : z:= x + y;
'-' : z:= x - y;
'*' : z:= x * y;
'/' : z:= x / y;
'^' : z:= exp(y*ln(x)); //Возведение X в степень Y
end;
Label4.Caption:= 'Результат: '+FloatToStr(z);
end;
Запустим программу на исполнение и убедимся, что калькулятор работает.
|