![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Директивы компилятору
Yurikon © (2007-10-01 13:50:00)Здраствуйте!
Подскажите, плиз, как объявить в главном юните директиву компилятору (например {$DEFINE QQQ})так, чтобы она была доступна в юнитах, которые ссылаются на главную?
Германн (2007-10-02 23:55:00) [1]
> TStas © (02.10.07 21:41) [18]
>
> Вот я так и подумал, что не в модулях, а в project > Options.
> .. А то сначала сдуру подумал, что в файле проекта, он же
> тоже везде доступен. :)
>
Имхо ноги сабжа выросли из турбо паскаля. Там чтобы объявить директиву действующую во всех юнитах программы, следовало её объявить в главном юните.
Юрий Зотов (2007-10-02 23:38:00) [2]> TStas © (02.10.07 21:41) [18]
Наоборот, он не доступен ни в одном юните.
TStas (2007-10-02 21:41:00) [3]Вот я так и подумал, что не в модулях, а в project > Options... А то сначала сдуру подумал, что в файле проекта, он же тоже везде доступен. :)
Германн (2007-10-02 13:45:00) [4]
> Инс © (02.10.07 13:29) [16]
>
>
> > Германн © (02.10.07 13:17) [15]
>
> Блин, ну и загадками же Вы говорите! :) Не сразу понял..
> .
>
А иначе жизнь была бы скучная и серая :-)
Инс (2007-10-02 13:29:00) [5]
> Германн © (02.10.07 13:17) [15]
Блин, ну и загадками же Вы говорите! :) Не сразу понял...
Германн (2007-10-02 13:17:00) [6]
> Инс © (02.10.07 12:42) [13]
>
>
> > Германн © (02.10.07 12:26) [12]
>
> Думаю, IDE имеет инструмент, позволяющий в случае необходимости
> сделать такой инструмент. ToolsAPI называется ;-)
>
Да мое имя Сергей. И фамилия моя тоже птичья. Но увы. :-(
Суслик (2007-10-02 12:54:00) [7]свинство в том, что не все директивы можно указать в диалоге с опциями проекта в д2007
например {$inline } можно только способом [1] сделать
Инс (2007-10-02 12:42:00) [8]
> Германн © (02.10.07 12:26) [12]
Думаю, IDE имеет инструмент, позволяющий в случае необходимости сделать такой инструмент. ToolsAPI называется ;-)
Германн (2007-10-02 12:26:00) [9]
> Юрий Зотов © (02.10.07 11:21) [10]
>
> И в одном бывает полезно.
Жаль только, что IDE не имеет инструмента, позволяющего автоматом отразить набор этих директив, например в Version Info.
evvcom (2007-10-02 12:14:00) [10]
> Например, для подключения отладочного кода, или
Я и не говорил, что [1] - единственно правильное решение. Можно и [8], не возражаю. Я написал "имхо, лучше", т.е. мне удобнее в этом случае [1], т.к. можно открыть в многострочномредакторе *.inc файл и иметь его всегда под рукой. Удобно и наглядно.
Юрий Зотов (2007-10-02 11:21:00) [11]> evvcom © (02.10.07 09:10) [9]
> когда один юнит цепляется к более, чем одному проекту.
> Если же проект один, то вкл/откл условий, имхо, лучше делать как в [1]
И в одном бывает полезно. Например, для подключения отладочного кода, или для компиляции демо-версии, или...
evvcom (2007-10-02 09:10:00) [12]
> TStas © (01.10.07 21:11) [7]
[8] - я такое использую, когда один юнит цепляется к более, чем одному проекту. Если же проект один, то вкл/откл условий, имхо, лучше делать как в [1]
> Германн © (01.10.07 16:44) [6]
Согласен. Но я тоже включил свой телепатор и решил, что моя шутка такого вида не будет оценена автором :)
Юрий Зотов (2007-10-01 23:25:00) [13]> TStas © (01.10.07 21:11) [7]
А чего там подробного? Просто пишем свои директивы (через точку с запятой) в диалоге опций проекта (вкладка Directories/Conditionals, поле Conditional defines), а потом в любом юните можем писать IFDEF/IFNDEF.
TStas (2007-10-01 21:11:00) [14]>Юрий Зотов А можете немножко подробнее? Мне тоже интересно.
Германн (2007-10-01 16:44:00) [15]
> evvcom © (01.10.07 16:31) [5]
>
>
> > Yurikon (01.10.07 15:50) [4]
>
> Как бы тебе странным это не показалось, но все 3 ответа
> были верными.
Неправда. Верным был только [3]. Остальные не соответствовали букве сабжа. :-)
evvcom (2007-10-01 16:31:00) [16]
> Yurikon (01.10.07 15:50) [4]
Как бы тебе странным это не показалось, но все 3 ответа были верными. Почему не поблагодарил остальных? Видимо, у Юрия телепатор оказался самым телепаторным :)
Yurikon (2007-10-01 15:50:00) [17]
> Юрий Зотов © (01.10.07 14:10) [2]
> Объявить ее в опциях проекта.
Спасибо, Юрий! Именно этого я и хотел, но не знал как сделать.
Anatoly Podgoretsky (2007-10-01 14:16:00) [18]> Yurikon (01.10.2007 13:50:00) [0]
Ни как, директива действует только на модуль и не наследуется другими модулями.
Юрий Зотов (2007-10-01 14:10:00) [19]Объявить ее в опциях проекта.
Palladin (2007-10-01 13:55:00) [20]Стандартный подход.
Создается файл (напрмер appDefs.inc) где описываются все определения. Далее в каждом юните прописывается {$I appDefs.inc}