Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Установка компонетов индивидуально для одного прое 
:(
    Опции темы
ilyalyu
Дата 19.9.2010, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 25.10.2006

Репутация: нет
Всего: нет



Вопрос такой. При разработке двух приложений используется один и тот же пакет компонентов. При работе над первым проектом потребовалось подправить исходники некоторых компонентов. Естественно, хочется, чтобы изменения, сделанные при работе над первым проектом, никак не влияли на второй проект. То есть хочется установить две копии одного и того же пакета: для первого проекта - исправленный вариант, для второго проекта - исходный вариант. Вопрос - как это сделать? Пока что при переключении с одного проекта на другой приходится удалять один вариант пакета и устанавливать вместо него другой. И так каждый раз. 
PM MAIL   Вверх
Proxin
Дата 20.9.2010, 01:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 21.6.2008

Репутация: 1
Всего: 3



самый простой вариант - написать наследников для каждого проекта.
PM MAIL   Вверх
kami
Дата 20.9.2010, 07:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Можно использовать директивы условной компиляции, правда придется для каждого проекта делать вместо Compile - Build (что далеко не всегда удобно при каждой необходимости пересобрать экзешник + нужно, чтобы в SearchPath был прописан путь к "изменяемым" исходникам)

Например:

в правленном модуле
{$IFDEF myChanges}
// правленный код
{$ELSE}
// исходный код
{$ENDIF}

Для проекта, в котором нужен правленный код, в меню Project>Options>Directories, Conditionals>Conditional defines прописать myChanges.

P.S. А автор изменяемых исходников не против этого? smile 

Это сообщение отредактировал(а) kami - 20.9.2010, 07:10
PM MAIL WWW   Вверх
Snowy
Дата 20.9.2010, 08:59 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Положить копию компонентов в папку с проектом и править эту копию.
Тогда исправленный вариант будет действовать только на этот проект.
При компиляции будет использована эта копия, т.к. приоритет в поиске файлов у локальной папки выше, чем у библиотечной.
PM MAIL   Вверх
ilyalyu
Дата 20.9.2010, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 25.10.2006

Репутация: нет
Всего: нет



Цитата
самый простой вариант - написать наследников для каждого проекта.


Это, конечно, самый последовательный метод, но отнюдь не самый простой. Изменить пару строчек в готовом компоненте гораздо быстрее.

Цитата
Положить копию компонентов в папку с проектом и править эту копию.


Этот вариант частично решает проблему. Но если в исправленом компоненте добавлены published properties, то его нужно установить. Тогда предложеный способ не поможет.

Пока придумал такой вариант: создавать для каждого проекта свою учетную запись Windows либо работать из под виртуальной машины. Тогда можно будет и индивидуальный Library path прописать и нужную версию компонент установить. Конечно, способ кривоват.
PM MAIL   Вверх
SeregaAltmer
Дата 23.9.2010, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 15.9.2010

Репутация: нет
Всего: нет



Цитата(ilyalyu @  20.9.2010,  10:59 Найти цитируемый пост)

Цитата(Proxin @  20.9.2010,  01:06 Найти цитируемый пост)
самый простой вариант - написать наследников для каждого проекта.

Это, конечно, самый последовательный метод, но отнюдь не самый простой. Изменить пару строчек в готовом компоненте гораздо быстрее.


Цитата(ilyalyu @  20.9.2010,  10:59 Найти цитируемый пост)
Пока придумал такой вариант: создавать для каждого проекта свою учетную запись Windows либо работать из под виртуальной машины. Тогда можно будет и индивидуальный Library path прописать и нужную версию компонент установить. Конечно, способ кривоват.


Не сказал бы что этот вариант лучше наследников. Наследника достаточно написать один раз, и больше не мучатся. Да и не так уж это проблематично, тем-более если там всего пара строк поменятся должна.
PM MAIL   Вверх
northener
Дата 24.9.2010, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



Я за
Цитата(kami @  20.9.2010,  07:09 Найти цитируемый пост)
Можно использовать директивы условной компиляции

Build вместо Compile не так уж и страшен. А вот написание на каждый чих наследников или более того плодить учетные записи - это уже перебор.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
cat512
Дата 24.9.2010, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 7
Всего: 15



Цитата(northener @ 24.9.2010,  00:38)
Я за
Цитата(kami @  20.9.2010,  07:09 Найти цитируемый пост)
Можно использовать директивы условной компиляции

Build вместо Compile не так уж и страшен. А вот написание на каждый чих наследников или более того плодить учетные записи - это уже перебор.

+1
Они как раз для подобных вещей и предназначены!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1052 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.