Главная » Delphi » Модули

0

Модуль (unit) представляет собой  отдельную  единицу  исходного кода,  вся  сово купность  которых составляет программу на  языке  Object Pascal.  В модуле  обычно размещается определенная группа функций и процедур, которые могут быть  вызва ны из основной программы. Для того  чтобы  считаться модулем, файл  с текстом ис ходного кода должен  состоять как минимум из трех частей, приведенных ниже.

•   Оператор unit. Каждый  модуль должен  начинаться со строки, объявляющей, что  данный блок текста  является модулем,  и задающей имя  этого  модуля. Имя модуля всегда должно  соответствовать имени его файла. Например, если файл называется FooBar, то его первая строка должна выглядеть так:

Unit FooBar;

•  Раздел  интерфейса (interface). После  оператора unit следующей  функцио нальной строкой должен  быть оператор interface. Все, что находится между этой  строкой и оператором implementation данного модуля, доступно  извнеи  может  использоваться другими  модулями  и  программами. Именно в таком разделе  описываются  типы   данных, константы, переменные, процедуры и функции,  которые должны   быть  доступны   программе  или  другим  модулям. В этом  разделе  допустимы только объявления  (но  не  реализация!) функций  и процедур. Сам  оператор interface занимает отдельную  строку  и  содержит единственное ключевое слово:

interface

•  Раздел реализации (implementation) следует за разделом интерфейса и начи нается оператором implementation. Хотя  основное содержимое этой  части модуля  составляют тела  описанных ранее процедур и  функций,  здесь  также можно  определять типы  данных, константы и переменные, которые будут дос тупны  только  в пределах данного модуля.  Сам оператор implementation за нимает отдельную  строку и содержит единственное ключевое слово:

implementation

В состав модуля могут входить еще два необязательных раздела.

•  Раздел  инициализации (initialization). Располагается после  раздела  реализа ции  и содержит код, необходимый для инициализации данного модуля. Этот  код будет выполнен только один раз перед началом выполнения основной программы.

•  Раздел  завершения (finalization). Располагается между разделом инициали зации  и оператором end. модуля.  Он  содержит код,  необходимый для завер шения  работы модуля. Этот  код будет выполнен только  один  раз —  при  завер шении работы программы. Раздел  завершения впервые появился в Delphi 2.0. В Delphi  1.0 для выполнения действий, завершающих работу модуля, следовало создать  особую процедуру  завершения и зарегистрировать ее с помощью  функ ции AddExitProc().

НА ЗАМЕТКУ

При наличии разделов initialization/finalization сразу в нескольких модулях выполнение их кода происходит в том порядке, в котором к этим модулям обращается компилятор (первый модуль в разделе uses основной программы, затем первый мо- дуль в разделе uses этого модуля и т.д.). Но не следует создавать код инициализа- ции/завершения модулей, работа которых полагается на некоторый жесткий порядок их выполнения, — это плохой стиль программирования. Малейшее изменение в любом разделе uses может привести к ошибке, которую будет чрезвычайно трудно обнару- жить!

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии