Підручник з простого калькулятора

Цей підручник призначений для початківців Delphi, які мають дещо стійкі знання як про компоненти, так і просте кодування в Delphi. Основні процеси, такі як іменування об'єктів, не будуть повністю описані. Програмування калькулятора - чудовий спосіб розпочати вивчення будь-якої мови програмування. Він пропонує практичний проект, який включає багато (але не надто багато) елементів мови. Це лише один із способів кодування калькулятора в Delphi. До цього, мабуть, багато шляхів, і я повністю закликаю вас знайти нові та креативні методи цього. Цей конкретний калькулятор зможе обробляти чотири математичні функції з двома числами. Давайте почнемо.

Цей підручник передбачає знання в певних областях програмування Delphi, зокрема:

  • Базовий макет одиниці Delphi. (включаючи знання про налаштування процедур тощо)
  • Основна інформація про змінну
  • Базові знання про вікна та палітри редактора форм.
  • Я припускаю, що ви досить добре знайомі з основним макетом Delphi; якщо ні, то пропоную спочатку прочитати кілька статей, знайдених в Інтернеті для абсолютно нових програмістів Delphi.

Отже, перше, що нам слід зробити, це відкрити Delphi (я буду використовувати Delphi 5, але цей підручник, швидше за все, буде сумісний з більшістю версій Delphi.) Вам буде представлений новий проект під назвою "Проект 1." Проект включає три окремі вікна: інспектор об’єктів, модуль windo та форму. А тепер давайте побудуємо дизайн калькулятора.

ПРИМІТКА: Ви не зможете просто копіювати та вставляти вихідний код, поки ми рухатимемось, якщо ви не назвете свої об'єкти однаковими з моїми. Список використаних об’єктів та їх назви перелічені внизу сторінки. Весь вихідний код також міститься внизу сторінки.

Зміст

  • 1 Дизайн калькулятора
  • 2 Кодування вашого калькулятора
    • 2.1 Кнопки з цифрами (і десяткова точка)
    • 2.2 Кнопка негативу
    • 2.3 Функціональні кнопки математики
    • 2.4 Кнопка Enter
    • 2.5 Кнопка очищення значення
    • 2.6 Кнопка скидання
  • 3 Час святкувати
  • 4 Мої назви компонентів
  • 5 Мій вихідний код

Дизайн калькулятора [редагувати | редагувати джерело]

delphi

Макет мого калькулятора

Для цього калькулятора ми будемо використовувати кнопки, мітки, поля редагування та панелі з палітри компонентів. Усі ці компоненти знаходяться на вкладці "Стандарт" палітри компонентів. Нам знадобиться вікно редагування у верхній частині калькулятора, кнопки для додавання цифр до цього поля редагування, кнопки для позначення певних математичних функцій, мітка для відображення нашої відповіді. Ви повинні розташувати ці компоненти будь-яким способом, який вам подобається, але я запропоную вам свій дизайн. Мій дизайн видно справа.

Ось список компонентів, за допомогою яких я створив свій калькулятор:

Я пропоную вам використовувати всі кнопки та інші компоненти, які я роблю, для цілей кодування, але, як уже було сказано раніше, я також рекомендую вам розробити свій калькулятор будь-яким способом, який ви вважаєте доречним.

Ви можете змінити те, що відображається на кнопках та ярлику, натиснувши окрему кнопку або ярлик та перейшовши до Інспектора об’єктів. Ви побачите список параметрів, і один з них буде називатися "Підпис". Клацніть на білій панелі безпосередньо праворуч від поля Субтитри та введіть підпис, який ви хотіли б бачити. Ви також можете змінити шрифт, що відображається кнопками, змінивши безліч параметрів, перелічених у параметрі "Шрифт", або просто вибравши біле поле редагування праворуч від вікна Шрифт і натиснувши на маленьку кнопку, яка позначена як "." до палітри шрифтів, що значно полегшить налаштування шрифту. Ви також можете змінити шрифт як на ярлик, так і на поле редагування. Щоб змінити текст у полі редагування, вам потрібно буде налаштувати параметр "Текст". У мене є порожнє, і я пропоную вам зробити те саме.

Давайте скомпілюємо та протестуємо наш "калькулятор". Для цього натисніть F9 або виберіть Run> Run. Як бачите, це схоже на те, що ми побудували, але це абсолютно марно, оскільки є калькулятором. Ось тут кодування.

Кодування вашого калькулятора [редагувати | редагувати джерело]

Кнопки з цифрами (і десяткова точка) [редагувати | редагувати джерело]

Ми почнемо з найосновнішого кодування, задіяного в цьому калькуляторі: цифрових кнопок. Їхня єдина мета - зробити так, щоб цифри, що з’являються на їх поверхні, також з’являлися у полі редагування. Перш ніж розпочати, давайте ретельно сплануємо, що ми хочемо мати, коли натискаємо кожну кнопку. Ми хочемо, щоб номер був поміщений у поле редагування позаду будь-які числа, які вже існують у полі редагування. Ми створимо підпрограму, яку може викликати кожна кнопка при натисканні. Створити підпрограми, створені користувачами, трохи складніше, ніж створити звичайну подію об'єкта, але вони часто призводять до більш чистого, згущеного коду. Піднесіть Unit (вікно з кодуванням). Безпосередньо після слова впровадження, починайте писати процедуру. Для цього починайте зі слова "процедура", після чого" T (** Назва вашої форми **). (** Назва події **) ", після чого" (Відправник: TObject); "Тепер ви можете додати подібний код до того, що я показав нижче, і прочитати пояснення, щоб переконатися, що ви повністю розумієте, що відбувається в коді. Одразу після пояснення коду, я дам вам ще два кроки щодо впровадження цієї підпрограми в кожне число і десяткова кнопка.

Ось код, який я використав для своєї підпрограми:

Ось розбивка цього коду:

Тепер, коли ви ввели цей блок коду, вам потрібно оголосити процедуру. Це робиться в інтерфейс розділу вашого коду, під цим словом типу. Всі ваші об’єкти перераховані тут, і ви можете просто додати свою варіацію цього коду під останнім об’єктом у списку. Процедура декларації:

Цей код готовий, але зараз він абсолютно марний. Це тому, що це підпрограма, і ніщо її не «кличе». Коли

Я вибрав "NumberButtonClick" для події OnClick цієї кнопки.

щось викликає підпрограму, все кодування в цій підпрограмі використовується об’єктом або іншою процедурою, яка її викликала. Для цієї підпрограми нам не потрібно буде виконувати додаткове кодування, щоб викликати її. (Whoopee!) Для нашого останнього кроку ми просто назвемо цю підпрограму в Інспекторі об’єктів. Для цього виберіть одну з вас цифрових кнопок і перейдіть до інспектора об’єктів. Клацніть на вкладку "Події" і знайдіть властивість OnClick. Клацніть у порожньому, сірому полі біля слова "OnClick". Поле стане білим, а в крайньому правому куті цього вікна з’явиться стрілка вниз. Клацніть стрілку, і з’явиться список. Це список ваших процедур, і тепер ви зможете призначити його для вашої події OnClick. Він повинен бути лише один, і він повинен бути позначений, однак ви назвали процедуру натискання кнопки (я назвав свою "NumberButtonClick"). Виберіть цей параметр. Ця кнопка виконана. Вам доведеться вибрати цю процедуру для кожної цифрової кнопки та кнопки десяткової коми, але набагато краще, щоб введення коду для кожної окремої кнопки!

Після того, як ви викликали процедуру на кожній цифровій кнопці та кнопці десяткової коми, продовжуйте і запускайте свій проект. Якщо все пішло правильно, він повинен скомпілюватись, і ми змогли б додати цифри до поля редагування, натискаючи кожну кнопку.

Підказка: Ви не зможете скопіювати та вставити мій код безпосередньо, якщо ви не назвали свої об'єкти точно так, як я. Список імен для кожного з моїх компонентів можна знайти в кінці цієї статті.

Негативна кнопка [редагувати | редагувати джерело]

Ось код для мінусової кнопки з поясненням до неї:

Функціональні кнопки математики [редагувати | редагувати джерело]

Наступним кодуванням, яке ми додамо до нашої програми, є кодування, необхідне для створення кнопок математичних функцій. Я дам вам код і покрокову інструкцію для кнопки додавання, а потім дам короткий огляд того, як змінити цей код для кнопок віднімання, множення та ділення. Спочатку створіть власник події OnClick для кнопки додавання, а потім додайте до неї подібний код:

Ось пояснення:

Щоб змінити цей код для будь-якої з математичних функціональних кнопок, змініть рядок для того, що дорівнює змінна Math. Якщо функція віднімання, встановіть Math рівним "Віднімання". Ось рядки, якими я користувався:

  • Додавання. Math: = 'Додати'
  • Віднімання. Математика: = 'Відняти'
  • Множення. Математика: = 'Помножити'
  • Відділ. Математика: = 'Розділити'

Ви побачите, як ці рядки ініціюють правильну функцію на наступному кроці.

Кнопка Enter [редагувати | редагувати джерело]

Кнопка введення є надзвичайно важливою частиною калькулятора і однією з найскладніших структур кодування. У цьому калькуляторі ми будемо використовувати якщо тоді твердження для розмежування математичних функцій, які потрібно виконати при обчисленні. Я дам вам кодування загальної процедури та одне з якщо тоді висловлювання та пояснення; тоді я поясню, як це реалізувати якщо тоді твердження для інших математичних функцій.

Ось кодування події OnClick кнопки Enter:


Для форматування цього коду для будь-якої з математичних функцій просто змініть умовний вираз так, щоб "Math" дорівнював рядку, який ви призначили цій конкретній математичній функції. Крім того, змініть перший рядок якщо тоді твердження, тому виконується правильний математичний процес. Наприклад, ось код процесу множення:

Просто додайте цю заяву до обробника подій кнопки enter, але переконайтесь, що вона відокремлена від усіх інших якщо тоді заяви.

Кнопка "Очистити значення" [редагувати | редагувати джерело]

Я також включив у свій калькулятор кнопку чіткого значення, представлену написом "CE". Ця кнопка просто видалить те, що знаходиться у полі редагування під час натискання кнопки. Це буде ні стерти значення, присвоєні будь-якій зі змінних. Код дуже простий. Він просто встановлює NumberEdit.Text рівним порожньому рядку, використовуючи команду "Очистити" для поля редагування. Ось код:

Кнопка скидання [редагувати | редагувати джерело]

Кнопка скидання додається внизу мого калькулятора з написом "Скинути". Ця кнопка повертає багато змінних та компонентів, що входять до складу калькулятора, до стадії спокою. Ось код:

  • Перший рядок оператора встановлює для мітки Equals порожній підпис.
  • Другий рядок робить поле редагування порожнім за допомогою команди "Очистити".
  • Третій та четвертий статути встановлюють значення FNumber і SNumber відповідно до нуля.
  • П'ятий рядок надає змінній Math безглузде значення рядка.

Час святкувати [редагувати | редагувати джерело]

Складіть проект. Це спрацювало? Якщо так, продовжуйте і знаходьте хвилинку для святкування. Ти заслуговуєш на це. Якщо ні, перегляньте помилки, які відображає Delphi, і спробуйте вирішити проблеми. Пам'ятайте: якщо ви не назвали всі свої об'єкти однаково з моїми, ви не зможете просто скопіювати та вставити вихідний код.

Тепер, коли ви закінчили, ви можете починати думати про те, як вдосконалити свій калькулятор. Існує багато різних речей, які ви можете включити, щоб зробити свій калькулятор ще кращим. Можливо, ви могли б додати функції тригера або додати блоки, щоб у поле редагування можна було вводити недійсні рядки. Можливо, ви хочете, щоб повідомлення відображалося, коли користувач намагається розділити на нуль. Все залежить від вашої творчості, і я повністю закликаю вас додати оригінальний код до свого калькулятора; це найкращий спосіб освоїти Delphi!

Мої імена компонентів [редагувати | редагувати джерело]

Якщо ви хочете більш уважно стежити за моїм налаштуванням калькулятора, я перерахував усі компоненти, описи та назви нижче. Щоб змінити назву об’єкта, перейдіть до Інспектора об’єктів із вибраним об’єктом та змініть параметр «Ім'я».

Мої назви компонентів
Тип компонента Загальний опис компонентів Ім'я
Форма Загальна форма для цього проекту калькулятора. Форма калькулятора
Кнопка Кнопка для # 1. Один
Кнопка Кнопка №2. Два
Кнопка Кнопка №3. Три
Кнопка Кнопка для # 4. Чотири
Кнопка Кнопка №5. П’ять
Кнопка Кнопка для # 6. Шість
Кнопка Кнопка №7. Сім
Кнопка Кнопка для №8. Вісім
Кнопка Кнопка для # 9. Дев'ять
Кнопка Кнопка для # 0. Нуль
Кнопка Кнопка для десяткової коми. Десяткова
Кнопка Кнопка функції додавання. Додавання
Кнопка Кнопка функції віднімання. Віднімання
Кнопка Кнопка функції множення. Множення
Кнопка Кнопка функції ділення. Відділ
Кнопка Кнопка для ввімкнення/вимкнення негативного знака. Негативні
Кнопка Кнопка для очищення поточного значення, що відображається у полі редагування (CE). ClearValue
Кнопка Кнопка для закінчення входів функції та запуску обчислень (Enter). Введіть
Кнопка Кнопка для повернення форми до початкового стану. Скинути
Редагувати Поле редагування для введення користувачем цифр, які будуть використовуватися в розрахунках. NumberEdit
Етикетка Етикетка, що використовується для відображення результату обчислень. Дорівнює
Панель Панель, яка використовується, щоб зробити дизайн більш привабливим. Панель1

Мій вихідний код [редагувати | редагувати джерело]

Ось мій вихідний код, якщо вам цікаво переглянути проект у цілому.