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

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

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


Alexander Vasjuk ©   (2002-04-16 11:46:00) 

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

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

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

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


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

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

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


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

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


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

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

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

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


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

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

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


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

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

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

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


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

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


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

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


Наверх

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