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




Вниз

Условная компиляция. Приглашение к разговору. 


Alexander Vasjuk   (2002-04-16 11:46) [0]

Условное отключение визуальных объектов при компиляции. Возможно ли это?

С run-time созданием компонентов все понятно. Обособил условными директивами создание и использование, и вперёд.
А как быть с объектами в формах например? *.DFM не поддерживают условную компиляцию(?).
Можно конечно понатыкать кучу xxx.Hide внутри директив, но, согласитесь, это не есть красивое решение. Откомпилированый проект должен ничем не отличаться от как бы если он был урезан до компиляции без директив.

(проблема навеяна необходимостью поддержки двух версий проекта - с модулем производства и без).
И еще. Давайте сначала рассмотрим варианты без технологии ActiveX, а потом, если не получится, обсудим и эту возможность.

Ваши мысли, господа кодеры:



Alexander Vasjuk   (2002-04-16 12:51) [1]

Да... Азарт нынче не в моде...



PVOzerski   (2002-04-16 12:58) [2]

Вариант 1: пишем свой препроцессор текстовых форм с поддержкой директив условной
компиляции и пропускаем через него формы перед сборкой. Естественно, вставлять
директивы в текст формы придется после основной разработки проекта. А вот разработчикам
Delphi 7 и Lazarus я бы посоветовал задуматься (жаль, не прочтут :^))



wicked   (2002-04-16 12:59) [3]

чес говоря, не совсем понял твою мысль... ты хочешь условно компилироват проект, при этом условия компиляции использовать для включения или не включения в проект определённых форм?...
если да, то можно использовать директивы условной компиляции для секции uses, например:

uses windows, sysutils, {$ifdef cond} <твой модуль>, {$endif}... <blah-blah-blah>;

соответственно и оформить вызовы этого условно присутствующего модуля...



Alexander Vasjuk   (2002-04-16 17:27) [4]

PVOzerski © (16.04.02 12:58)
"после основной разработки проекта" сразу после вставки директив обязательно потребуется внести небольшие изменения :)

wicked © (16.04.02 12:59)
С формами (модулями) проще.
А я хочу опционально не включать в проект отдельные кнопки, закладки в TPageControl и т.п.



kull   (2002-04-16 18:17) [5]

Используй другие методы для разделения версий.
CVS, например.
С условной компиляцией намного сложнее.
А используя какую-либо систему контроля версий, легко поддерживать разные релизы, многоверсионность, следить за изменениями кода, и т.д.
При разрастаниии проекта становится трудно следить за правильным использованием условной компиляции.

Короче ее надо использовать для вещей типа {$DEFINE DEBUG}.

Я рекомендую CVS.



Alexander Vasjuk   (2002-04-16 19:20) [6]

kull © (16.04.02 18:17)
Хочу спросить.
Если я исправляю глюки в версии без закладки "Производство" в PageControl, CVS исправит их и в версии, имеющей такую закладку?
Оно что, парсит исходный текст? Насколько оно интелектуально в этом плане?
И еще.
Сравни ее с TeamSource. Хотелось бы юзать что-то от одной фирмы.
И последнее.



kull   (2002-04-16 20:27) [7]

Нет в версии без закладки CVS не исправит глюки в другой версии.
Cvs, а также TeamSource ничего не исправляют. Исправляет программер, а CVS позволяет следить за исправлениями (т.е. он хранит все исправления в своем хранилище) и при необходимости откатываться к стабильной версии. CVS вообще не завязан на какой-то компилятор. В нем можно хранить любые файлы, также и бинарные. В нем создаются отдельные ветви для разных версий (чего кстати нельзя сделать в TeamSource). И если надо чтобы исправление бага повлияло на обе версии, можно воспользоваться такой возможностью, как слияние веток, только здесь надо быть аккуратным.

Я пользовался сначала TeamSource, но из за того что в нем нет возможности ветвиться на версии, перешел на CVS (графическая оболочка к нему WinCvs). CVS к тому же помощнее будет...




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




Наверх





Память: 0.73 MB
Время: 0.017 c
1-94439           ДмитрийВ              2002-04-15 20:57  2002.04.29  
print


1-94496           Reals                 2002-04-16 17:30  2002.04.29  
Как написать плугин для Outlook Express и internet Explorer...


3-94343           VladimirKVT           2002-04-10 10:04  2002.04.29  
Lookup в RxDBGrid


3-94337           agrig                 2002-04-09 21:55  2002.04.29  
Помогите написать запрос с суммированием!


3-94303           mcmax                 2002-04-08 15:27  2002.04.29  
Подскажите как назначить обработчик события новорожденному TField