Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перечисление модулей в implementation и interface, В чем отличие? 
V
    Опции темы
dizzy1984
Дата 20.4.2009, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: нет
Всего: 25



В чем отличие объясните.
PM MAIL   Вверх
pseud
Дата 20.4.2009, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Цитата

•  Раздел интерфейса (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. Зачастую это решает проблему.


Это сообщение отредактировал(а) pseud - 20.4.2009, 10:16


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
dizzy1984
Дата 20.4.2009, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: нет
Всего: 25



Если я правильно понял, то это звучит как "перечисление модулей в списке uses секции interface необходимо для возможности компилирования типов данных, констант, переменных, функций и процедур в секции interface и секции implementation ". "Перечисление модулей в списке uses секции implementation необходимо для возможности компилирования типов данных, констант, переменных, функций и процедур в секции implementation и никак не влияет на секцию interface"?

PM MAIL   Вверх
mes
Дата 20.4.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



в грубом изложение да

Это сообщение отредактировал(а) mes - 20.4.2009, 23:12


--------------------
PM MAIL WWW   Вверх
bems
Дата 20.4.2009, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



где возможно включай в implementation, и только там где по-другому не работает - в interface


--------------------
Обижено школьников: 8
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.