Урок 6 – Пишем свой калькулятор
Урок 6 – Пишем свой калькулятор В этом уроке я покажу, как написать свой простой калькулятор на Delphi.Естественно, писать свой калькулятор мы будем не потому, что аналогичных калькуляторов не существует (взять хотябы стандартный калькулятор Windows), а потому, что сам процесс его написания будет очень познавательным для начинающих программистов. Переодически на сайте Cybern.ru будут появляться практические уроки для новичков и я очень надеюсь, что они помогут и вам в освоении программирования на Delphi. Наш калькулятор будет несколько отличаться от интерфейса стандартного аналога Windows. В результате урока мы получим такой калькулятор: Приступим. Создайте новое приложение Delphi. Измените название формы (свойство Form1.caption) на "Учебный калькулятор". Создайте на форме 2 компонента: Panel1 и Memo1. Далее присвойте свойству Panel1.align значение "albottom", а для свойства Memo1.align установите значение alclient. Должно получиться следующее: Свойство align позволяет фиксировать визуальный компонент к какой либо стороне формы или растягивать компонент на всю форму. Поэкспериментируйте с этим свойством. Теперь установите для Panel1.showcaption значение true, чтобы надпись на панеле исчезла. В Memo1 у нас будут фиксироваться ход работы калькулятора, т.е. лог. Сотрите значение Memo1.lines, чтобы изначально на memo1 не было никакого текста. Установите значение ssBoth для Memo1.scrollbars. Также можете настроить шрифт у Memo1, это можно сделать благодаря расширенным настройкам шрифта параметра Font: Открыть такое окно можно, кликнув по кнопке: Внутри Panel1 расположите два Edit (Edit1 и Edit2) и четыре кнопки с надписями "+", "-", "/","x" соответственно. У меня получилось так: Два нижних поля ввода нам понадобятся для ввода самих чисел, а 4 кнопки соответственно для выполнения с ними математических операций.
Создадим обработчики OnClick для кнопок "+", "-", "/","x" (button1, button2, button3, button4 соответственно): procedure TForm1.Button1Click(Sender: TObject); varresult:real; a,b:real; Begin // сохраняем значение дробей в переменных a:=strtofloat(edit1.Text); b:=strtofloat(edit2.Text); // производим операцию result:=a+b; // выводим результат в виде примера в Memo1 memo1.Lines.Add(edit1.Text+' + '+edit2.Text+' = '+floattostr(result)); // очищаем поля ввода edit1.Clear; edit2.Clear; end;
procedure TForm1.Button2Click(Sender: TObject); varresult:real; a,b:real; Begin // сохраняем значение дробей в переменных a:=strtofloat(edit1.Text); b:=strtofloat(edit2.Text); // производим операцию result:=a-b; // выводим результат в виде примера в Memo1 memo1.Lines.Add(edit1.Text+' - '+edit2.Text+' = '+floattostr(result)); // очищаем поля ввода edit1.Clear; edit2.Clear; end;
procedure TForm1.Button3Click(Sender: TObject); varresult:real; a,b:real; begin // сохраняем значение дробей в переменных a:=strtofloat(edit1.Text); b:=strtofloat(edit2.Text); // производим операцию result:=a/b; // выводим результат в виде примера в Memo1 memo1.Lines.Add(edit1.Text+' / '+edit2.Text+' = '+floattostr(result)); // очищаем поля ввода edit1.Clear; edit2.Clear; end;
procedure TForm1.Button4Click(Sender: TObject); varresult:real; a,b:real; begin // сохраняем значение дробей в переменных a:=strtofloat(edit1.Text); b:=strtofloat(edit2.Text); // производим операцию result:=a*b; // выводим результат в виде примера в Memo1 memo1.Lines.Add(edit1.Text+' * '+edit2.Text+' = '+floattostr(result)); // очищаем поля ввода edit1.Clear; edit2.Clear; end;
|