Модулі в Дельфи, delphi-faq

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

Компілятор розпізнає модуль по його заголовку і створює в результаті своєї роботи не виконуваний файл (ехе), як це було для додатка, а файл модуля з розширенням dcu.

Модуль складається з заголовка, в якому після ключового слова unit вказується ім'я модуля, і чотирьох розділів: інтерфейсу (interface), реалізації (implementation), ініціалізації (initialization) І деініціалізацію (Finalization).

Модуль має наступну структуру:

У розділі інтерфейсу розміщуються опису ідентифікаторів, які повинні бути доступні всім модулям і програмами, які використовують цей модуль і містить його ім'я в списку uses. У розділі інтерфейсу оголошуються типи, константи, змінні і підпрограми. При цьому для підпрограм вказуються тільки їх заголовки. Інші використовувані модулі вказуються в списку uses. Розділ інтерфейсу починається ключовим словом Interface.

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

У розділі ініціалізації розташовуються інструкції, що виконуються на початку роботи програми, яка підключає даний модуль. Розділи ініціалізації модулів виконуються в тому порядку, в якому вони перераховані в списку розділу uses програми. Розділ ініціалізації починається словом Initialization і є необов'язковим.

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