Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.10.02;
Скачать: [xml.tar.bz2];

Вниз

Использование модулей в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
2-1308301208
Sergey
2011-06-17 13:00
2011.10.02
Refresh таблицы


2-1307726626
Exterr
2011-06-10 21:23
2011.10.02
Создание кнопок и меню в рантайм


2-1308002107
And7
2011-06-14 01:55
2011.10.02
Edit и Skrollbar


11-1238133138
imp
2009-03-27 08:52
2011.10.02
Проблема с VMHSyntaxEdit.


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский