Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование модулей в Uses


Gu ©   (2011-06-11 00:51:00) 

Может кто-нибудь объяснить, сильно ли отличается использование дополнительных модулей (речь идет о модулях проекта) в разделе USES после Interface и после Implementation. Какие отличия и где лучше вставлять? Например есть основная форма (unit1), дополнительная (unit2) и просто unit3 (без формы). unit2 вставляется автоматом в uses после Implementation, если на него сослаться в любой процедуре unit1; а вот куда правильно вставлять unit3, если из него нужны функции в unite1 и unit2 - в какой из uses, при этом в unit3 используются функции unit2 - там как быть (в unit3 - куда вставлять unit2)?


Юрий Зотов   (2011-06-12 14:17:00) [1]

На мой взгляд, зря Борланд разрешил uses в implementation. В TP этого не было, что заставляло лучше продумывать структуру программы.


Игорь Шевченко   (2011-06-12 11:30:00) [2]

icarus рулит

hhtp://www.peganza.com


Dimka Maslov   (2011-06-12 09:34:00) [3]


> Идеальный вариант для констант и типов специфичных для данного
> проекта или для группы проектов. Но не дай боже обозвать
> сей модуль первым напрашивающемся на язык именем Consts
> :)


Обзывать самонаписанное именами стандартных вещей - преступление.


Германн   (2011-06-12 01:58:00) [4]


> Dimka Maslov ©   (11.06.11 23:14) [5]
>
> модуль с глобальными определениями у всех в интерфаце, остальные
> спокойно подключаются друг к другу в имплементатион

Идеальный вариант для констант и типов специфичных для данного проекта или для группы проектов. Но не дай боже обозвать сей модуль первым напрашивающемся на язык именем Consts :)


Dimka Maslov   (2011-06-11 23:14:00) [5]

модуль с глобальными определениями у всех в интерфаце, остальные спокойно подключаются друг к другу в имплементатион


Anatoly Podgoretsky   (2011-06-11 12:44:00) [6]

Правило простое, все в Implementation, если нет противопоказаний


Германн   (2011-06-11 02:22:00) [7]


> Gu   (11.06.11 02:04) [2]
>
> Спасибо
>

Да собственно не за что.
Тут требование одно - не должно быть перекрестных ссылок на модули в секции Interface. Ибо компилятор Дельфи сможет скомпилировать модуль A, в секции Interface uses которого указан модуль B, только после того как модуль B будет скомпилирован. Но если в модуле B в секции Interface uses указан модуль A, то возникает бесконечная рекурсия, которая вызывает ошибку компиляции.
Секции uses в Impementation таким пороком не страдают.


Gu   (2011-06-11 02:04:00) [8]

Спасибо


Германн   (2011-06-11 00:58:00) [9]

По возможности в Implementation, дабы не было Circular References.
В Interface только тогда, когда именно в этой секции есть ссылки на переменные или типы объявленные в другом модуле.


Наверх

Титульная страница Поиск, карта сайта Написать письмо