Delphi для начинающих – Урок 6 – Пишем свой калькулятор

AngelOfLove

Латентный кодер
Pro Member
Сообщения
98
Реакции
47
Посетить сайт
В этом уроке я покажу, как написать свой простой калькулятор на 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);
var result: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);
var result: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);
var result: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);
var result: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;
 
Название темы
Автор Заголовок Раздел Ответы Дата
AngelOfLove Delphi для начинающих. Урок 11. Процедуры и функции С/C++ 0
AngelOfLove Delphi для начинающих. Урок 10. Циклы. Работа с массивами С/C++ 0
AngelOfLove Delphi для начинающих – Урок 9 – Массивы С/C++ 0
AngelOfLove Delphi для начинающих – Урок 8 – Условия. Оператор Case С/C++ 0
AngelOfLove Delphi для начинающих – Урок 7 – Условия. Оператор IF С/C++ 0
AngelOfLove Delphi для начинающих – Урок 5 – Работаем с компонентами С/C++ 0
AngelOfLove Delphi для начинающих – Урок 4 – Работа с переменными С/C++ 0
AngelOfLove Delphi для начинающих – Урок 3 – Создание переменных С/C++ 0
AngelOfLove Delphi для начинающих – Урок 2 — События С/C++ 0
AngelOfLove Delphi для начинающих — Урок 1 — Среда разработки Delphi С/C++ 0
C Реверс-инжирниринг бота на Delphi, есть проблемы Вопросы и интересы 0
M [Delphi] Работа VKAPI, на примере бота С/C++ 3
T0pDro4eR Пишем WinLocker на Delphi С/C++ 0
Dages Нужна помощь по Delphi! ЗАПЛАЧУ! Другие ЯП 1
VAVAN Продам исход стиллера (ЯП Delphi) Продажа софта 1
AngelOfLove Потоки в Delphi. TThread С/C++ 0
AngelOfLove Delphi. Урок 17. Типы С/C++ 0
AngelOfLove Delphi. Урок 16. Исключительные ситуации С/C++ 0
AngelOfLove Delphi. Урок 15. Математические операции С/C++ 0
AngelOfLove Delphi. Урок 14. Работа со списками строк TStringList или «сложные» типы С/C++ 0
AngelOfLove Delphi. Урок 13. Работа со строками С/C++ 0
AngelOfLove Delphi. Урок 12. Преобразование числа в строку и строки в число С/C++ 0
AngelOfLove Простые шутку в DELPHI С/C++ 5
AngelOfLove Мои старые исходники на Delphi С/C++ 1
AngelOfLove Несколько шпор по Delphi =) С/C++ 3
L Загружаем компьютер другу. Delphi,rad studio Другие ЯП 0
/intactdev Country IP Ranges Generator v1.0 [Source][Delphi] Другие ЯП 3
BINGO_SHARK Помощь [Delphi] Другие ЯП 0
BINGO_SHARK VK Post Grabber [Source][Delphi] Другие ЯП 0
Admin [delphi] downloader winapi Другие ЯП 0
D Ищу партнеров для работы по белому!!! Предоставляю работу. Ищу специалиста. 0
NickelBlack Закину пробив и бомбер для вас - беспалтно. Другое 4
M Продам уникальный сайт- фейк для сбора сс + одноразовый код Сайты/Хостинг/Сервера 0
SamBonus ❗️Фотодропы. Фото шаблоны для отрисовки. Идеальное качество, любые комплекты на заказ. Ищу работу. Предлагаю свои услуги. 0
avatar3965 Ссылки для сайта из Социальных сетей Twitter facebook vk Ок Ищу работу. Предлагаю свои услуги. 0
K Софт для наркутки на прямые трансляции youtube + чекер логов Продажа софта 0
U Продажа аккаунтов для работы 24/7 |EN| Sale of accounts for work 24/7 Ищу работу. Предлагаю свои услуги. 0
K ищу людей в рф для отправок посылок (легально) Предоставляю работу. Ищу специалиста. 0
M отправляю дампы для обнала Финансы - биллинги, банки, кошельки, логи 0
transis 19гигов PSD шаблонов для отрисовки Раздача документов 1
MrRyudo ❤✅Безлимитное облако Google Drive для вашего аккаунта❤ Ищу работу. Предлагаю свои услуги. 0
K Продам фейковый наркошоп бот tg для заработка Способы заработка 1
U Хостинг для вашего проекта Сайты/Хостинг/Сервера 0
H OWASP APICheck – набор инструментов DevSecOps для HTTP API Корзина 0
H Слив огромного пака для Доксинга (Деанона) Корзина 0
H PowerShell для пентестов в Kali Linux Корзина 0
H Брутфорс для Wi-Fi: как быстро взломать Wi-Fi со сложным WPA паролем Корзина 0
H Основы Linux для начинающего "Хакера" - Использование скриптов запуска Корзина 0
H Основы Linux для начинающего "Хакера" - Сети Корзина 0
Gumanoid Бомбер для ПК на Python Spam/DDOS/Malware 1

Название темы