Anatomy of a delphi unit - delphi programming


Delphi для початківців:
Interface, Implementation, Initialization, Finalization, Uses і інші "смішні" слова!

Якщо ви мрієте стати хорошим програмістом на Delphi, то такі слова як interface, implementation, uses обов'язково повинні бути у вашій базі знань.


Коли ми створюємо додаток Delphi. то можемо почати роботу з порожнього проекту, існуючого проекту або з одного з існуючих в Delphi шаблонів. Проект включає всі файли, необхідні для створення закінченого додатка.
Діалогова форма, яка з'являється. коли ми вибираємо пункт меню View-Project Manager дає нам доступ до форм і модулів нашого проекту.
Проект містить єдиний файл проекту (.dpr), в якому перераховані всі форми і модулі проекту. Ми можемо переглядати і навіть редагувати файл проекту (давайте називати його Модулем Проекту) вибором в меню Delphi пункту View - Project Source. Оскільки Delphi сама підтримує файл проекту, нам немає необхідності редагувати його вручну і. як правило, не рекомендується це робити початківцям програмістам.

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

Оскільки модуль містить код вашого проекту, модулі - основа програмування на Delphi. Загалом, модуль - це колекція констант, змінних, типів. процедур і функцій, які можуть бути використані цими додатками.

Кожен раз, коли ми створюємо нову форму (.dfm файл), Delphi автоматично створює пов'язаний з нею модуль (.pas файл). давайте назвемо його Form Unit. Однак, можуть існувати модулі, не пов'язані з формами. Модуль коду (Code Unit) містить код, який викликається з інших модулів проекту. Коли ви почнете створювати бібліотеку корисних підпрограм, то найімовірніше збережіть їх в модулі коду. Для додавання нового модуля коду в Delphi виберіть в меню пункт File-New. Unit.

анатомія
Коли ми створюємо модуль (форму або модуль коду) Delphi додає наступні шматки коду автоматично: заголовок модуля, секцію interface і секцію implementation. Існує також ще дві секції: initialization і finalization.

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

Тема модуля починається з зарезервованого слова unit. з подальшим ім'ям модуля. Ім'я модуля використовується в інших модулях при необхідності посилання на нього.

Interface секція
Ця секція містить пункт uses. в якому перераховані інші модулі (модулі коду або форм). які будуть використовуватися. У модулі форм Delphi автоматично додає посилання на стандартні модулі. наприклад, Windows, Messages. і т.д. Коли ви додаєте на форму нові компоненти, Delphi додає відповідні імена до списку uses. Однак, Delphi Не додає пункт uses в interface секцію модулів коду - ми повинні робити це вручну.

У interface секції модуля ми можемо декларувати глобальні змінні, типи даних, змінні, процедури і функції.

Не сумнівайтеся, що Delphi створить Модуль форми. коли ви створите саму форму. Типи даних форми, змінні форми і заголовки Подій декларуються в interface секції. Interface секція закінчується резервним словом implementation.

Implementation секція
Implementation секція модуля - це секція. в якій міститься власне код модуля. У секції implementation можуть бути свої власні декларації, хоча ці декларації вже будуть недоступні іншим модулям. Будь-які об'єкти Delphi. які продекларовані тут, будуть доступні в межах даного модуля.

Initialization і Finalization секції

Ці дві секції є необов'язковими і вони не створюються автоматично при створенні модуля. Якщо вам необхідно проинициализировать якісь змінні, то ви можете додати код ініціалізації в секцію initialization модуля. Коли додаток використовує даний модуль, то код в секції initialization виконується перед запуском будь-якого іншого коду модуля.
Якщо вам необхідно провести будь-яку очистку після завершення роботи програми, таку. наприклад, як звільнення ресурсів, зайнятих в секції initialization. ви можете додати до модуля секцію finalization. Секція finalization розміщується після секції initialization. але перед заключним end модуля.

Повернення до списку перекладів