Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];

Вниз

На этапе компиляции определить подключен или нет модуль   Найти похожие ветки 

 
DmitriyG   (2008-11-26 16:45) [0]

Можно ли на этапе компиляции определить подключен ли определенный модуль. Т.е. хочется, используя что типа $IFDEF определять подключен ли к проекту модуль и в зависимости от этого вызывать или не вызывать функции из этого модуля.
Определять Define в самом проекте не устраивает... Может есть какая нибудь хитрая директива компилятора, или может как нибудь можно увидеть из модуля define, определенный в другом модуле?


 
Поросенок Винни-Пух ©   (2008-11-26 16:50) [1]

что-то не так в дизайне консерватории. зачем вообще такое может понадобиться?


 
Сергей М. ©   (2008-11-26 17:01) [2]

юнит A:

uses B
{$IFDEF SomeCondDefinition}
.. do something ..
{$ENDIF}

юнит B:
{$DEFINE SomeCondDefinition}

Оно ?


 
DmitryG.   (2008-11-26 21:55) [3]

Оно было, бы если бы Define между unit"ами виделись
А понадобится может на случай распространения исходного текста программы с некоторыми ограничениями при этом не меняя фактически исходников, а просто выкидывая необходимые модули (которые являются например платным или не нужными для конкретного пользователя)


 
Сергей М. ©   (2008-11-26 23:17) [4]


> просто выкидывая необходимые модули (которые являются например
> платным или не нужными для конкретного пользователя)


А что, конкретный пользователь тебе прямо так и говорит, мол, "мне то не нужно, мне сё не нужно, собери мне проект без таких-то конкретных юнитов"

??


 
DmitryG.   (2008-11-26 23:21) [5]

Нет, все скажем так наоборот. Одни пользователям отдаются исходники с одной функциональностью, другим с другой.... Просто некоторым пользователям не имеет смысла отдавать некоторые модули


 
Сергей М. ©   (2008-11-26 23:31) [6]

Ползователям, которым отдаются исходники, сами разберутся, что им надо , а что не надо.


 
Anatoly Podgoretsky ©   (2008-11-26 23:38) [7]

> DmitryG.  (26.11.2008 23:21:05)  [5]

inc файл с нужными определениями.


 
Сергей М. ©   (2008-11-26 23:44) [8]


> inc файл с нужными определениями


Эт точно (с)

А в нем - все нужные дефиниции со всеми нужными комментариями.

А на эти дефиниции равняются все прочие юниты в составе кода, впариваемого пользователю.


 
Германн ©   (2008-11-27 01:57) [9]


> Anatoly Podgoretsky ©   (26.11.08 23:38) [7]
>
> > DmitryG.  (26.11.2008 23:21:05)  [5]
>
> inc файл с нужными определениями.
>

Истина старая, как и сам мир Паскаля.


 
Юрий Зотов ©   (2008-11-27 13:17) [10]

> DmitriyG   (26.11.08 16:45)

> Можно ли на этапе компиляции определить подключен ли определенный
> модуль.

ПЕРЕД компиляцией - можно (надо написать эксперт IDE с реализацией IOTANotifier.BeforeCompile). Но на сам компилятор это никак не повлияет.


 
DmitryG.   (2008-11-27 23:20) [11]

Получается, действительно, что только inc файл....


 
Германн ©   (2008-11-28 01:40) [12]


> DmitryG.   (27.11.08 23:20) [11]
>
> Получается, действительно, что только inc файл....
>

Ну и? Этот вариант тебя чем-то не устраивает?


 
KilkennyCat ©   (2008-11-28 02:53) [13]


> Сергей М. ©   (26.11.08 23:17) [4]
>
> А что, конкретный пользователь тебе прямо так и говорит,
>  мол, "мне то не нужно, мне сё не нужно, собери мне проект
> без таких-то конкретных юнитов"
>


Я всеръез рассматривал такое, как вариант продажи программы с различной функциональностью.


 
DmitryG.   (2008-11-28 11:13) [14]

Да не хотелось ради пары дефайнов делать еще один файл :-) Собственно и все...


 
KSergey ©   (2008-11-28 14:50) [15]

> KilkennyCat ©   (28.11.08 02:53) [13]
> Я всеръез рассматривал такое, как вариант продажи программы
> с различной функциональностью.

Если не вести речь об отдаче исходников - то, по-моему, проще плагины.


 
Michael   (2008-11-28 15:09) [16]


> Если не вести речь об отдаче исходников - то, по-моему,
> проще плагины.

Плугины вполне должны подойти, даже с условием отдачи исходников.


 
Jeer ©   (2008-11-28 16:18) [17]

Хм.. отдавать исходники и отвечать за изменение их последствий ?
"Планета обезьян" (С)


 
Anatoly Podgoretsky ©   (2008-11-28 16:58) [18]

> Jeer  (28.11.2008 16:18:17)  [17]

Отвечать не надо, а отдавать можно и нужно, злобные Буратино будут приносить по 5 золотых.


 
KSergey ©   (2008-11-28 17:12) [19]

> Michael   (28.11.08 15:09) [16]
> Плугины вполне должны подойти, даже с условием отдачи исходников.

Ну хотя да, я чета не додумал. При условии что плугины - самостоятельные полностью проекты, а основной и без них собирается. А иначе - и не плугины :)


 
KilkennyCat ©   (2008-11-28 19:28) [20]

С плагинами вовсе не проще.


 
kami ©   (2008-11-28 21:09) [21]

> [3] DmitryG.   (26.11.08 21:55)
> Оно было, бы если бы Define между unit"ами виделись

Для этого есть Conditional defines в опциях проекта. Чем они не устраивают?
С учетом

> распространения исходного текста программы
, а не просто модулей.


 
DmitriyG. ©   (2008-11-29 13:37) [22]

Conditional defines немного не удобно, необходимо пользователя, так сказать обязать их прописывать...


 
Leonid Troyanovsky ©   (2008-11-29 15:00) [23]


> DmitriyG. ©   (29.11.08 13:37) [22]

> Conditional defines немного не удобно, необходимо пользователя,
>  так сказать обязать их прописывать...

Ну, снабди его набором make files.

--
Regards, LVT.


 
DmitryG.   (2008-11-30 16:31) [24]

Make files? Это интересно, если честно не знал что в Delphi есть....



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.007 c
15-1254493923
ocean
2009-10-02 18:32
2009.12.06
Хочу наладонник с навигацией GPS покруче.


2-1255610309
XTasy
2009-10-15 16:38
2009.12.06
Глобальные переменные delphi


2-1254662801
newbart
2009-10-04 17:26
2009.12.06
Ошибки при запуске приложений из Delphi


15-1254918035
Kerk
2009-10-07 16:20
2009.12.06
Регэксп


2-1255701197
Артём
2009-10-16 17:53
2009.12.06
Динамические окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский