![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объявление модулей в interface и implementation [D6, 95/98]
Dr. Genius © (2006-09-27 11:45:00)Здравствуйте!
У меня один чисто теоретический вопрос: используемые модули (uses …, …, …;) по умолчанию объявляются после секции interface, но можно их объявлять и в секции implementation. Есть ли от этого какая-то разница?
Dr. Genius (2006-09-27 14:56:00) [1]Все понятно. Спасибо.
Игорь Шевченко (2006-09-27 12:32:00) [2]
> Есть ли от этого какая-то разница?
Есть. Те, что объявлены в interface, обычно используются, чтобы разрешить ссылки как в interface, так и в implementation, те, что объявлены в implementation, разрешают ссылки только в implementation.
Обычно должен действовать принцип "ничего лишнего", то есть, если модуль не используется для разрешения ссылок в interface, то его надо указывать в uses в implementation.
LOG1 (2006-09-27 11:57:00) [3]Модули подключают в implementation в основном для разрешения перекрестных ссылок, т.к. когда модули ссылаются друг на друга с помощью uses...
ЮЮ (2006-09-27 11:51:00) [4]
> по умолчанию объявляются
Не по умолчанию, а потому, что брошенные тобой на форму компоненты можно обнаружить среди полей класса TFormXXX, описываемого в interface секции модуля формы. И. естественно, эти модули ты никак не переместишь в implementation. Если же модуль используется лишь в реализациии методов классов, описанных в interface части, то их запросто можно указывать в implementation.