Калькулятор на delphi

Зараз ми розглянемо приклад створення простого калькулятора з 4-ма діями, що називається "без всяких проблем", тобто без присвоєння компонентів імен, зміни їх безлічі властивостей і т.д. Просто і лаконічно. Описано як не можна більш дохідливо.
Ви можете створити калькулятор в різних візуальних системах розробки, наприклад, Lazarus, Borland Delphi. Ми розглянемо 2-ий варіант, найбільш відомий - Borland Delphi 7-ий версії, наприклад.

1. Запустіть Delphi 7. створіть новий проект. (File -> New -> VCL Form Application).

Нам знадобиться всього 10 компонентів (4 кнопки, 3 мітки, 3 поля введення). Приклад розміщення - дивіться скріншот програми. Отже, готуємо форму:

а) Беремо компонент TLabel і розміщуємо його (це буде заголовок "Перше число"). Щоб так назвати цю мітку, ми шелкаем один раз по нашій мітці і в вікні "Object Inspector" знаходимо властивість "Caption". Справа буде написано "Label1". ми це стираємо і пишемо "Перше число". натискаємо Enter обов'язково.
б) Беремо компонент TEdit і так само за зразком розміщуємо, під "Першим числом". Клацаємо також по компоненту, який тільки що розмістили. Щоб в ньому не було напису "Edit1", ми знову йдемо в вікно "Object Inspector" і знаходимо вже властивість "Text" і очищаємо його.
в) Повторюємо крок "(а)", той же компонент беремо, розміщуємо за зразком і знову в властивості "Caption" пишемо трохи інший заголовок - "Друге число".
г) Повторюємо крок (б). розміщуємо під "Другим числом", властивість "Text" знову очищаємо.
д) Тепер беремо компонент "TButton". За зразком розміщуємо кнопку, підганяємо розміри мишкою. У властивості "Caption" пишемо, наприклад, знак "+". Знову беремо кнопку, ті ж дії, тільки в "Caption" пишете знак "-". І решту 2 кнопки: все те ж, тільки в "Caption" напишете "X" і "/" (помножити і розділити).
е) Знову повторюємо крок або "(а)", або "(в)" - вони однакові))). Знову мітку беремо, знову в "Caption" пишемо тепер уже "Результат".
е) Повторюємо крок "(б)" або "(г)" - вони теж однакові. Знову беремо TEdit. розміщуємо під "Результатом", підганяємо розміри, властивість "Text" знову очищаємо.
ж) За бажанням можете змінити назву заголовка програми. Клацаємо по вільному місцю форми (де немає компонентів) і у властивості "Caption" пишемо, наприклад, "Калькулятор". І можна колір фону вибрати в "Color".

Форма готова. Тепер реалізація програми.
Два рази клацаємо мишкою по кнопці з плюсом, Вас перекине у вікно коду програми. Як тільки Ви клацнете 2 рази, Delphi створить процедуру для компонента, тобто реакція на подію. Подія для кнопки - це клацання. Будуть такі рядки:

procedure TForm1.Button1Click (Sender: TObject);
begin

Для початку ми заведемо 3 змінні. Напишемо їх в розділі VAR - розділ опису змінних (додайте перед begin) і назвемо їх, наприклад, num1, num2, result і тип цих змінних - цілочисельний (integer). Ці змінні будуть зберігати числа. Ось так буде виглядати код:

procedure TForm1.Button1Click (Sender: TObject);
VAR
num1, num2, result: integer;
begin

Тепер основна частина роботи кнопки, між begin і and. Першою змінної ми присвоюємо значення. введене в першому полі, але! Щоб розпізнати це як число, використовується функція "StrToInt" (перетворює текст в число). Тобто з введеного нами значення в поле 1-ого числа виходить "реальне, математичне" число. Все це береться з поля з першим числом (воно називається Edit1) і його властивості "Text" (те, що ввели ми). Те ж саме для другої змінної. тільки поле друге, воно називається "Edit2" (ці імена стандартні, їх задає програма, знаходяться у властивості "Name"). Ось код зі змінами:

procedure TForm1.Button1Click (Sender: TObject);
VAR
num1, num2, result: integer;
begin
num1: = StrToInt (Edit1.Text);
num2: = StrToInt (Edit2.Text);
end;

Як Ви зрозуміли, при натисканні на кнопку плюс, числа підсумовуються. Тобто можна просто написати result: = num1 + num2. Це вірно, так і буде, нам потрібен цей код, але без функції "IntToStr" (число переводить в рядок символів, в текст) у Вас при додаванні 1 і 2 буде 12, а не 3. Справа в тому, що без вказівки Делфі буде складати символи з 2 полів в один рядок, не здогадуючись, що там числа і що з ними потрібно виконати математичні дії. Ось і використовується "IntToStr". Поле виведення результату називається "Edit3" ось йому (точніше його властивості "Text") ми призначимо значення перекладеного в рядок символів числа, а точніше змінної "result". де зберігається сума.

Ось код з доповненнями:
procedure TForm1.Button1Click (Sender: TObject);
VAR
num1, num2, result: integer;
begin
num1: = StrToInt (Edit1.Text);
num2: = StrToInt (Edit2.Text);
result: = num1 + num2;
Edit3.Text: = IntToStr (result);
end;

Перша кнопка готова! Запустіть (F9) програму, введіть два числа і натисніть плюс. Працює? Якщо все вірно, то так.

Мінус і множення зажадають всього кілька кліків миші і зміни одного знака. Розподіл трохи більший. Але спочатку мінус і множення:

1. Для мінуса: все також, 2 рази по кнопці з мінусом, видаліть рядки begin і and. між якими блимає курсор, скопіюйте створений нами перший фрагмент коду, ось цей і де ми писали "result: = num1 + num2" поміняйте "+" на "-" (без лапок!). І все! Ось код:
procedure TForm1.Button1Click (Sender: TObject);
VAR
num1, num2, result: integer;
begin
num1: = StrToInt (Edit1.Text);
num2: = StrToInt (Edit2.Text);
result: = num1-num2;
Edit3.Text: = IntToStr (result);
end;
2. Для множення. Ті ж дії, клацаємо 2 рази, видаляємо begin і and, копіюємо і тепер ставимо "*" (всюди без лапок).
3. Останній ривок - поділ. Абсолютно нічого страшного, все просто. Також клацаємо 2 рази по кнопці з розподілом, видаляємо знову begin і and, вставляємо і. Міняємо трохи. Спочатку - ось це:
num1, num2: integer;
result: real;

Чому? Справа в тому, що при розподілі часто виходять дробові числа. Integer не дозволяє зберігати числа з комою, Real дозволяє. Все просто. Далі, де ми міняли знаки дій між num1 і num2 ставимо "/" (поділ). І останнє: міняємо в рядку Edit3.Text: = InToStr на FloatToStr. Функція та ж, тільки для дійсних чисел.

Код кнопки:
TForm1.Button1Click (Sender: TObject);
VAR
num1, num2: integer;
result: real;
begin
num1: = StrToInt (Edit1.Text);
num2: = StrToInt (Edit2.Text);
result: = num1 / num2;
Edit3.Text: = FloatToStr (result);
end;

Запустіть програму і переконайтеся, що всі дії виконуються вірно!

От і все! Простенький калькулятор готовий!
Що незрозуміло - питайте!

Компактний, зручний, нескладний калькулятор, що дозволяє виконати 4 дії.