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

Вниз

Директивы компилятору   Найти похожие ветки 

 
Yurikon   (2007-10-01 13:50) [0]

Здраствуйте!

Подскажите, плиз, как объявить в главном юните директиву компилятору (например {$DEFINE QQQ})так, чтобы она была доступна в юнитах, которые ссылаются на главную?


 
Palladin ©   (2007-10-01 13:55) [1]

Стандартный подход.

Создается файл (напрмер appDefs.inc) где описываются все определения. Далее в каждом юните прописывается {$I appDefs.inc}


 
Юрий Зотов ©   (2007-10-01 14:10) [2]

Объявить ее в опциях проекта.


 
Anatoly Podgoretsky ©   (2007-10-01 14:16) [3]

> Yurikon  (01.10.2007 13:50:00)  [0]

Ни как, директива действует только на модуль и не наследуется другими модулями.


 
Yurikon   (2007-10-01 15:50) [4]


> Юрий Зотов ©   (01.10.07 14:10) [2]
> Объявить ее в опциях проекта.


Спасибо, Юрий! Именно этого я и хотел, но не знал как сделать.


 
evvcom ©   (2007-10-01 16:31) [5]


> Yurikon   (01.10.07 15:50) [4]

Как бы тебе странным это не показалось, но все 3 ответа были верными. Почему не поблагодарил остальных? Видимо, у Юрия телепатор оказался самым телепаторным :)


 
Германн ©   (2007-10-01 16:44) [6]


> evvcom ©   (01.10.07 16:31) [5]
>
>
> > Yurikon   (01.10.07 15:50) [4]
>
> Как бы тебе странным это не показалось, но все 3 ответа
> были верными.

Неправда. Верным был только [3]. Остальные не соответствовали букве сабжа. :-)


 
TStas ©   (2007-10-01 21:11) [7]

>Юрий Зотов А можете немножко подробнее? Мне тоже интересно.


 
Юрий Зотов ©   (2007-10-01 23:25) [8]

> TStas ©   (01.10.07 21:11) [7]

А чего там подробного? Просто пишем свои директивы (через точку с запятой) в диалоге опций проекта (вкладка Directories/Conditionals, поле Conditional defines), а потом в любом юните можем писать IFDEF/IFNDEF.


 
evvcom ©   (2007-10-02 09:10) [9]


> TStas ©   (01.10.07 21:11) [7]

[8] - я такое использую, когда один юнит цепляется к более, чем одному проекту. Если же проект один, то вкл/откл условий, имхо, лучше делать как в [1]


> Германн ©   (01.10.07 16:44) [6]

Согласен. Но я тоже включил свой телепатор и решил, что моя шутка такого вида не будет оценена автором :)


 
Юрий Зотов ©   (2007-10-02 11:21) [10]

> evvcom ©   (02.10.07 09:10) [9]

> когда один юнит цепляется к более, чем одному проекту.
> Если же проект один, то вкл/откл условий, имхо, лучше делать как в [1]

И в одном бывает полезно. Например, для подключения отладочного кода, или для компиляции демо-версии, или...


 
evvcom ©   (2007-10-02 12:14) [11]


> Например, для подключения отладочного кода, или

Я и не говорил, что [1] - единственно правильное решение. Можно и [8], не возражаю. Я написал "имхо, лучше", т.е. мне удобнее в этом случае [1], т.к. можно открыть в многострочном редакторе *.inc файл и иметь его всегда под рукой. Удобно и наглядно.


 
Германн ©   (2007-10-02 12:26) [12]


> Юрий Зотов ©   (02.10.07 11:21) [10]
>
> И в одном бывает полезно.

Жаль только, что IDE не имеет инструмента, позволяющего автоматом отразить набор этих директив, например в Version Info.


 
Инс ©   (2007-10-02 12:42) [13]


> Германн ©   (02.10.07 12:26) [12]

Думаю, IDE имеет инструмент, позволяющий в случае необходимости сделать такой инструмент. ToolsAPI называется ;-)


 
Суслик ©   (2007-10-02 12:54) [14]

свинство в том, что не все директивы можно указать в диалоге с опциями проекта в д2007

например {$inline } можно только способом [1] сделать


 
Германн ©   (2007-10-02 13:17) [15]


> Инс ©   (02.10.07 12:42) [13]
>
>
> > Германн ©   (02.10.07 12:26) [12]
>
> Думаю, IDE имеет инструмент, позволяющий в случае необходимости
> сделать такой инструмент. ToolsAPI называется ;-)
>

Да мое имя Сергей. И фамилия моя тоже птичья. Но увы. :-(


 
Инс ©   (2007-10-02 13:29) [16]


> Германн ©   (02.10.07 13:17) [15]

Блин, ну и загадками же Вы говорите! :) Не сразу понял...


 
Германн ©   (2007-10-02 13:45) [17]


> Инс ©   (02.10.07 13:29) [16]
>
>
> > Германн ©   (02.10.07 13:17) [15]
>
> Блин, ну и загадками же Вы говорите! :) Не сразу понял..
> .
>

А иначе жизнь была бы скучная и серая :-)


 
TStas ©   (2007-10-02 21:41) [18]

Вот я так и подумал, что не в модулях, а в project > Options... А то сначала сдуру подумал, что в файле проекта, он же тоже везде доступен. :)


 
Юрий Зотов ©   (2007-10-02 23:38) [19]

> TStas ©   (02.10.07 21:41) [18]

Наоборот, он не доступен ни в одном юните.


 
Германн ©   (2007-10-02 23:55) [20]


> TStas ©   (02.10.07 21:41) [18]
>
> Вот я так и подумал, что не в модулях, а в project > Options.
> .. А то сначала сдуру подумал, что в файле проекта, он же
> тоже везде доступен. :)
>

Имхо ноги сабжа выросли из турбо паскаля. Там чтобы объявить директиву действующую во всех юнитах программы, следовало её объявить в главном юните.



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

Форум: "Основная";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.046 c
3-1187346916
Bless
2007-08-17 14:35
2007.12.23
Как правильно "гасить" MSSQL-ошибку с кодом 266


2-1195710167
Costy
2007-11-22 08:42
2007.12.23
Ускорения tClientSocket (tserverSocket)


2-1196253710
PASZLIB
2007-11-28 15:41
2007.12.23
Четность числа ?


2-1196255549
_Guest_
2007-11-28 16:12
2007.12.23
ValueListEditor добавление строк в String


4-1180950245
TCrash
2007-06-04 13:44
2007.12.23
Сообщение WM_USER_PREPARE_TO_CLOSE





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский