Delphi дозволяє програмісту помістити свої функції і процедури в окремий модуль, а потім використовувати процедури і функції модуля в своїх програмах, вказавши ім’я модуля в списку модулів, необхідних програмі (інструкція uses).
Щоб приступити до створення модуля, потрібно спочатку закрити вікно форми і вікно модуля форми (у відповідь на питання про необхідність збереження модуля слід вибрати No, т. е. модуль, відповідний закритій формі, зберігати не треба). Потім з меню File потрібно вибрати команду New | Unit. У результаті відкривається вікно редактора коду, в якому знаходиться сформований Delphi шаблон модуля. Його текст приведений в лістингу 6.7.
Лістинг 6.7. Шаблон модуля
unit Unit1; interface implementation end.
Починається модуль заголовком – інструкцією unit, в якій зазначено ім’я модуля. Під час збереження модуля це ім’я буде автоматично замінено на ім’я, вказане програмістом.
Слово interface відзначає розділ інтерфейсу модуля. В цей розділ програміст повинен помістити оголошення знаходяться в модулі процедур і функцій, які можуть бути викликані з інших модулів, що використовують даний.
В розділ implementation (Реалізація) потрібно помістити процедури і функції, оголошені в розділі interface.
Як приклад в лістингу 6.8 приведений модуль програміста, який містить розглянуті раніше функції IsInt і isFioat.
Лістинг 6.8. Модуль програміста
unit my __ unit; interface // оголошення процедур і функцій, // доступних програм, // використовують цей модуль function IsInt (ch: char): Boolean; // функція Islnt перевіряє, чи є символ // допустимим під час введення цілого числа function IsFloat (ch: char; st: string): Boolean; // Функція IsFloat перевіряє, чи є символ допустимим // під час введення дробового числа // ch - черговий символ // st - вже введено жодного символу implementation // реалізація // перевіряє, чи є символ допустимим // під час введення цілого числа function Islnt (ch: char): Boolean; begin if (Ch > = '0') and (ch < = '9') // цифри or (ch = # 13) // клавіша <Enter> or (Ch = # 8) // клавіша <Backspace> then Islnt: = True // символ допустимо else Islnt: = False; // неприпустимий символ end; // перевіряє, чи є символ допустимим // під час введення дробового числа function IsFloat (ch: char; st: string) : Boolean; // ch - черговий символ // st - вже введено жодного символу begin if (Ch > = '0') and (ch < = '9') // цифри or (Ch = # 13) // клавіша <Enter> or (Ch = # 8) // клавіша < Backspace > then begin IsFloat : = True; // символ вірний Exit; // вихід з функції end; case ch of '-': if Length (st) = 0 then IsFloat: = True; ',': if (Pos ( ',', st) = 0) and (St [Length (st)] > = '0') and (st [Length (st)] & < = '9') then // роздільник можна ввести тільки після цифри // і якщо він ще не введений IsFloat : = True; else // інші символи заборонені IsFloat : = False; end // це розділ ініціалізації // він в даному випадку не містить інструкція end.
Зберігається модуль звичайним способом, тобто. е. вибором з меню File команди Save. Разом з тим, для модулів повторно використовуваних процедур і функцій краще створити окрему папку, назвавши її, наприклад, Units.