| Цитата | • Раздел интерфейса (interface). После оператора unit следующей функцио нальной строкой должен быть оператор interface. Все, что находится между этой строкой и оператором implementation данного модуля, доступно извне и может использоваться другими модулями и программами. Именно в таком разделе описываются типы данных, константы, переменные, процедуры и функции, которые должны быть доступны программе или другим модулям. В этом разделе допустимы только объявления (но не реализация!) функций и процедур. Сам оператор interface занимает отдельную строку и содержит единственное ключевое слово: interface • Раздел реализации (implementation) следует за разделом интерфейса и начи нается оператором implementation. Хотя основное содержимое этой части модуля составляют тела описанных ранее процедур и функций, здесь также можно определять типы данных, константы и переменные, которые будут дос тупны только в пределах данного модуля. Сам оператор implementation за нимает отдельную строку и содержит единственное ключевое слово: implementation
|
Добавлено @ 10:15
| Цитата | В разделе uses перечисляются модули, которые будут включены в данную про грамму (или в модуль). Например, если в программе FooProg используются функции или типы данных из двух модулей — UnitA и UnitB, — то раздел uses этой программы должен выглядеть следующим образом:
| Код | Program FooProg; uses UnitA, UnitB;
|
Модули могут содержать два раздела uses: один — в разделе interface, а другой — в разделе implementation. Вот пример простейшего модуля:
| Код | Unit FooBar; interface uses BarFoo; { Объявления открытых элементов (public) } implementation uses BarFly; { Объявления закрытых элементов (private) } initialization { Код инициализации } finalization { Код завершения } end.
|
Иногда может возникнуть ситуация, когда модуль UnitA использует модуль UnitB, а тот в свою очередь — модуль UnitA. Обычно наличие подобных взаимных ссылок (circular unit reference) свидетельствует о просчетах на этапе проектирования струк туры приложения. Этого следует избегать. Устранить данную проблему можно создав третий модуль, в состав которого войдут все необходимые функции и процедуры обо их модулей. Если же по какимлибо соображениям это невозможно (например, модули достаточно велики), переместите один из разделов uses в раздел implementation модуля, а другой оставьте в разделе interface. Зачастую это решает проблему.
|
|