В данной статье описывается создание калькулятора в среде Borland
Delphi. Сначала создаем интерфейс, описывать как его создавать, какие и
как ставить кнопки нет смысла (я оставляю это на вашей фантазии), всего
на форме 26 кнопок (среди них кнопки цифр – 10, кнопок функций – 16),
также один компонент TPanel – на нем будет выводить результат действия
калькулятора. Итак, приступим к коду. Добавим в наш код 4 главных
переменных
var
i,p,r:real; //они будут сохранять числа введенные пользователем
mode:integer; //режим калькулятора (умножить, разделить и т.д)
Можно их внести в раздел protected или private. Теперь приступим к
нашим кнопкам. В каждой цифровой кнопке обработаем событие OnClick. Код
будет идентичен для всех цифровых кнопок (от 1 до 10й). procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Caption:=Panel1.Caption+'1';//для всех остальных кнопок заменяйте 1 на
//нужное вам число
end;
Вы наверное заметили что мы в самом начале написания программы ввели
переменную mode, настало время объяснить для чего она нам. Переменная
mode будет содержать числовое значение действия: 1 – прибавление, 2 –
вычитание, 3 – деление, 4 – умножение, 5 – возведение в степень. Пора
заняться теперь кнопками действий. Чтобы долго не расписывать что
делать, ниже код для пяти кнопок (прибавления, вычитания, умножения
деления, возведения в степень).
procedure TForm1.ButtonMinusClick(Sender: TObject);
begin
i:=StrToFloat(Panel1.Caption);
mode:=2;
Panel1.Caption:='';
end;
procedure TForm1.ButtonDivClick(Sender: TObject);
begin
i:=StrToFloat(Panel1.Caption);
mode:=3;
Panel1.Caption:='';
end;
procedure TForm1.ButtonMultiplyClick(Sender: TObject);
begin
i:=StrToFloat(Panel1.Caption);
mode:=4;
Panel1.Caption:='';
end;
procedure TForm1.ButtonPowerClick(Sender: TObject);
begin
i:=StrToFloat(Panel2.Caption);
mode:=5;
Panel2.Caption:='';
end;
Кратко поясню что мы сделали. При нажатии на кнопку мы сохраняем
значения введенного числа в переменной I, затем переменной mode
присвоем значения действия. Теперь у нас есть все необходимые знания
для обработки события OnClick для кнопки со значением "=".
Ниже проведен код для этого действия:
procedure TForm1.ButtonClick(Sender: TObject);
begin
case mode of
1:begin
p:=StrToFloat(Panel1.Caption);
r:=i+p;
Panel1.Caption:=FloatToStr(r);
end;
2:begin
p:=StrToFloat(Panel1.Caption);
r:=i-p;
Panel1.Caption:=FloatToStr(r);
end;
3:begin
p:=StrToFloat(Panel1.Caption);
r:=i/p;
Panel1.Caption:=FloatToStr(r);
end;
4:begin
p:=StrToFloat(Panel1.Caption);
r:=i*p;
Panel1.Caption:=FloatToStr(r);
end;
5:begin
p:=StrToFloat(Panel1.Caption);
r:=Power(i,p);
Panel1.Caption:=FloatToStr(r);
end;
end;
end;
|