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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.019 c
2-1196148033
IntruderLab
2007-11-27 10:20
2007.12.23
TMemo перейти к последней записи


2-1196340674
webpauk
2007-11-29 15:51
2007.12.23
сохранение файлов


15-1195910281
Vendict
2007-11-24 16:18
2007.12.23
Wide vs не-Wide 19"LCD


4-1179815919
Magedon
2007-05-22 10:38
2007.12.23
Send To i n Vista


2-1196273108
Kaliostro
2007-11-28 21:05
2007.12.23
Доступ к Excel через ADO