Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.10.02;
Скачать: CL | DM;

Вниз

Использование модулей в Uses   Найти похожие ветки 

 
Gu   (2011-06-11 00:51) [0]

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


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

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


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

Спасибо


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


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

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


 
Anatoly Podgoretsky ©   (2011-06-11 12:44) [4]

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


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

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


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


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

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


 
Dimka Maslov ©   (2011-06-12 09:34) [7]


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


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


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

icarus рулит

hhtp://www.peganza.com


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

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



Страницы: 1 вся ветка

Текущий архив: 2011.10.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1307987145
Andrey K
2011-06-13 21:45
2011.10.02
Караул. Не запустить Delphi


1-1267175596
Vlad40
2010-02-26 12:13
2011.10.02
D2010 - внешний вид (border) и др. у TCategoryPanelGroup


1-1267450439
apic
2010-03-01 16:33
2011.10.02
Как при компиляции автоматически поместить исходный код


15-1307584738
brother
2011-06-09 05:58
2011.10.02
Обновление прошивки в DI-804HV сбросятся ли настройки?


3-1264510649
Раиса
2010-01-26 15:57
2011.10.02
Как использовать в запросе результат из хранимой процедуры