Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Условная компиляция [D5, WinXP]


anbezr ©   (2003-02-10 10:13:00) 

Привет!
в код компопнента вклячены несколько отладочных строк; в окончательной программе их быть не должно. хотелось бы использовать директивы условной компиляции.
{$DEFINE DEBUGMODE}

{$IFDEF DEBUGMODE}
SavetoFile("");
{$ENDIF}
но в справке написано, что DEFINE работает только в пределах одного файла. что я должен использовать, чтобы иметь возможность пользоваться условной компиляцией.


Calm   (2003-02-10 11:20:00) [1]

anbezr, а чем тебя не устроили ответы на этот же твойвопрос здесь?
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1044693242&n=0


anbezr   (2003-02-10 11:19:00) [2]

при добавлении в Projects/Options/Directories/conditionals дельфя не перекомпилировала проект - по этому и не работало


Reindeer Moss Eater   (2003-02-10 10:57:00) [3]

Во всех модулях проекта, нуждающихся в условной компиляции:
{$I MyDefines.Inc}

В MyDefines.Inc:

{$DEFINE DEBUGMODE}


han_malign   (2003-02-10 10:48:00) [4]

{$IFOPT D+} {$ENDIF} - блок включается при включенной отладке
dcc32 -DDEBUGMODE progect1.dpr - определяет символ для всех файлов проекта

Project Options->Directories/Conditionals->Conditionals->Conditional defines: DEBUGMODE;...
- определяет символы для всех файлов проекта


anbezr   (2003-02-10 10:46:00) [5]

я это упустил из виду. если речь идет о Projects/Options/Directories/conditionals, то все равно не работает.


Anatoly Podgoretsky   (2003-02-10 10:31:00) [6]

Так ты бы и задавал вопрост так.
Для этого есть возможность задания констант условной компиляции в среде.


anbezr   (2003-02-10 10:28:00) [7]

так нет - не работает. сам сначала думал что так сработает. кроме того, {$DEFINE C1} можно заменить на const C1 = true. но так тоже не работает? или я чего-то недопонимаю...


anbezr   (2003-02-10 10:24:00) [8]

так я и использую. всё прекрасно работает, но только в том случае, если {$DEFINE ...} я вставлю в каждом файле, в котором есть {$IFDEF ...}. это не удобно и можно ч-л забыть убрать при установке ококнчательного варианта программы. нельзя ли задавать {$DEFINE ...} не более чем в одном месте кода.


uw   (2003-02-10 10:24:00) [9]

В отдельном модуле определить DEBUGMODE и включить этот модуль во все остальные в разделе uses.


Anatoly Podgoretsky   (2003-02-10 10:15:00) [10]

Ты должен использовать {$IFDEF


Наверх

Титульная страница Поиск, карта сайта Написать письмо