Вданной статье описывается создание калькулятора в среде 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®; end; 2:begin p:=StrToFloat(Panel1.Caption); r:=i-p; Panel1.Caption:=FloatToStr®; end; 3:begin p:=StrToFloat(Panel1.Caption); r:=i/p; Panel1.Caption:=FloatToStr®; end; 4:begin p:=StrToFloat(Panel1.Caption); r:=i*p; Panel1.Caption:=FloatToStr®; end; 5:begin p:=StrToFloat(Panel1.Caption); r:=Power(i,p); Panel1.Caption:=FloatToStr®; end; end; end; |