Навчіться програмувати за допомогою Delphi Community Edition Частина 5 - Складання калькулятора разом - Спільнота

Ласкаво просимо до останнього епізоду серії "Навчіться програмувати за допомогою видання спільноти Delphi". У перших чотирьох епізодах ми висвітлювали "Вступ та встановлення" безкоштовного видання спільноти Delphi, а потім ми перейшли до основ IDE в "Будівництво в налагодженні". У "Архітектурі та шарах коду" були обговорені ключові концепції належної структури додатків, і в останньому епізоді ми розпочали "Проектування користувацьких інтерфейсів".
У попередньому епізоді ми створили проект калькулятора з основною формою з 20 кнопками та міткою, яка діє як "дисплей". Дуже важливо відокремити код інтерфейсу користувача від логіки програми. Найкращий спосіб досягти цього розділення - використання інтерфейсів. Однак це додало б занадто багато складності для початкової серії, тому я волію писати окремий клас за допомогою логіки калькулятора.
По-перше, ми додали два нових типи даних до блоку uCalculator. Перший - це перелік, як перелік дійсних значень для "роботи" калькулятора. Другий - це фактичний клас з логікою, визначеною в декількох методах, та інформацією про стан, представленою кількома полями, як будь-який хороший клас, який слідує об’єктно-орієнтованому підходу:
Поля використовуються для зберігання поточного вхідного рядка, який вводить користувач, загальної суми дотепер (із попередніх операцій), запитуваної операції (яка застосовуватиметься до наступної пари значень) та логічного прапора, що вказує, чи потребує відображення щоб показати вхідне значення або останню загальну суму (те, що ми зробимо після останньої операції, але перед тим, як введення знову розпочнеться).
Методи мають різні ролі. Дві операції додавання, NewOperator та CalcTotal беруть участь безпосередньо при натисканні різних кнопок в інтерфейсі. AddDigit просто передає цифру натиснутої кнопки, а NewOperation робить те саме для операції, запускаючи обчислення поточного вхідного значення. Ось їх код: