![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
setnull |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 3.7.2007 Репутация: нет Всего: 1 |
Люди, кто знает, как область видимости директивы {$DEFINE _MY_PARAM}, обяленной в модуле DefineUnit, также распространить и на модули, использующие данный ,включая и транзитивное использование,
(т.е Unit2 -> Unit1 -> DefineUnit) Т.к. у меня сейчас директива {$IFDEF _MY_PARAM} DO_MY_DIDS {$ENDIF} отрабатывает только в модуле DefineUnit, а мне необходимо и в Unit2 |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
setnull,
Никак вроде. Глобально дефайн будет действовать только если он прописан для определенного проекта. -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
Felan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 2.8.2007 Где: Самара Репутация: 2 Всего: 7 |
Делаешь отдельный файл со всеми дефайнами, которые тебе нужны, типа файл_с_дефайнами.inc (не обязательно inc, просто так принято), а потом в модулях, где тебе надо, что бы это работало, делаешь
{$I файл_с_дефайнами.inc} Все что ты напишешь в том файле будет вставлено в исходный текст "как есть". Ну или действительно в свойствах проекта. ЗЫЖ Не проверял, но, вроде, если мудуль использует модуль, где определены какие-то дефайны, то они должны быть доступны в обоих... -------------------- // Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного. |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Неа, покрайней мере в плоть до семерки область видимости дефайна только модуль в котором он описан. -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
setnull |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 3.7.2007 Репутация: нет Всего: 1 |
А в проекте это в смысле в *.dpr
program MyProg uses UseList; {$DEFINE _MY_PARAM} ... или это где-нить в опциях?... Это сообщение отредактировал(а) setnull - 16.8.2007, 15:12 |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
В свойствах проекта в Directories/Conditionals в поле Conditional defines просто прописать список нужных дефайнов через точку с запятой.
Также можно определить при компиляции из коммандной строки через ключ -D |
|||
|
||||
setnull |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 3.7.2007 Репутация: нет Всего: 1 |
Спасибочки!!!
А ещё вопрос можно? Возможнен ли дефайн значений такой логики: (образно) {$DEFINE _MY_PARAM 7} ну и ченить вроде {$IFDEF _MY_PARAM = 7} DoMy7(); {$ELSE IFDEF _MY_PARAM = 3} DoMy3(); {$ENDIF} ...ну или каким механизмом этот можно реализовать?.. Это сообщение отредактировал(а) setnull - 16.8.2007, 15:38 |
|||
|
||||
Felan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 2.8.2007 Где: Самара Репутация: 2 Всего: 7 |
Возможно. Но это только на этапе компиляции. Т.к. если это скомпилируешь у тебя в рабочий код попадет или первая строчка или вторая. Во время работы это разделить будет нельзя.
Что бы динамически так подменять методы надо или тупо условия и процедурный тип использовать или полиморфизм. -------------------- // Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |