Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Директивы компилятора


Автор: XperT 2.10.2010, 14:25
Здравствуйте,
не могу разобраться с директивами компилятора. В OnCreate формы пишу {$Define DEMO_MODE}, на сколько я понял этим я определяю переменную DEMO_MODE для компилятора. Потом в обработчике нажатия на кнопку этой же формы пишу {$IFDEF DEMO_MODE} DemoMode; {$ENDIF}, но процедура DemoMode почему то не вызывается. Работает только когда в этой же процедуре (нажатия на кнопку) прописываю {$Define DEMO_MODE}, но такой вариант не подходит.

В описании написано:
Цитата

Синтаксис:
 {$DEFINE Имя}

Определенный символ существует до конца компиляции, или пока он не будет убран директивой $UNDEF Имя.
Директива {$DEFINE Имя} не даст эффекта, если символ с именем "Имя" уже был определен.


Почему же у меня он существует только в пределах одной процедуры? Или я что-то не так понимаю?

Автор: XperT 2.10.2010, 14:46
Перечитал доки и понял ошибку: дело не в том, в каком порядке вызываются процедуры в программе, а в том, какая последовательность сверху донизу.

Но тут назревает другой вопрос: судя с документации определённая переменная существует только в пределах модуля. Нельзя ли как-то определить её глобальной?

Автор: bems 2.10.2010, 15:49
В свойствах проекта можно указать defines для всего проекта

Автор: XperT 3.10.2010, 11:54
Спасибо, так и есть, вопрос закрыт.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)