Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.29;
Скачать: CL | DM;

Вниз

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

 
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 к тому же помощнее будет...



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

Текущий архив: 2002.04.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
3-94270
almikhb
2002-04-08 03:56
2002.04.29
Печать стркутуры Базы Данных


3-94284
Бульбаш
2002-04-08 16:08
2002.04.29
Как управлять транзакциями Oracle при использовании ODAC


1-94378
Sound
2002-04-17 01:38
2002.04.29
Как востановить размер окна при запуске программы?


3-94292
hn
2002-04-08 17:02
2002.04.29
не работает try


3-94333
Beer
2002-04-09 17:05
2002.04.29
select из строковой переменной.