Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Две копии Delphi 7


Автор: 0rsh 9.9.2008, 11:46
День добрый, возникла необходимость установить разные версии DevExpress в Delphi 7.
Но в IDE может быть установлена только 1 версия продукта. Поэтому решил попробовать поставить еще одну копии Delphi 7 в другой каталог. Но инсталлятор Delphi не дает возможности установить еще одну копию. Как можно решить вопрос будут идеи?

Автор: gambit 9.9.2008, 11:50
Слишком координально - но я за виртуальную машину.

Автор: Staruha 9.9.2008, 13:17
Установи Delphi10

Автор: 0rsh 9.9.2008, 14:17
на моем компе (512 Мб оперативы, пень 2,4) виртуальная машина довольно сильно тупит.
Лицензия есть только на Delphi 7, поэтому использовать другие версии не представляется возможным

Автор: ama_kid 9.9.2008, 14:54
Цитата(gambit @  9.9.2008,  12:50 Найти цитируемый пост)
Слишком координально - но я за виртуальную машину
+1, не стоит захламлять основную систему...
Цитата(0rsh @  9.9.2008,  15:17 Найти цитируемый пост)
на моем компе (512 Мб оперативы, пень 2,4) виртуальная машина довольно сильно тупит
поставь себе http://www.virtualbox.org/, у мну дома аналогичная конфигурация и VB (в т.ч. и Дельфи на ней) достаточно шустренько работает...



Автор: CodeMonkey 9.9.2008, 15:06
А даже, если можно было бы установить две версии одной Delphi, толку от этого не было бы - ведь настройки у обоих версий были бы идентичные (ведь обе установки хранят свои настройки в одном месте реестра). Следовательно, если бы вы поставили компоненты в одну установку Delphi, они бы автоматически появились бы в другой - и наоборот.
Я бы попробовал поставить одну версию компонентов, забекапить, поставить вторую (в другое место), разбэкапить предыдущую. Имеем две установки компонентов в разных каталогах. 
Затем в настройках среды в нужное время переключать пакеты. 
Но что-то гиморно получается. Поэтому я тоже за виртуалку smile

Автор: 0rsh 9.9.2008, 15:27
Всем спасибо за помощь. VirtualBox установлен, но т.к. политики безопасности довольно жесткие антивирисная база обновляется часто и проверяется все что только можно. Поэтому система тормозит даже и без виртульной машины. Буду пробовать, если нервов хватит  smile 

Автор: Staruha 10.9.2008, 08:03
Цитата

(512 Мб оперативы, пень 2,4)

А добавить память слабо?

Автор: 0rsh 10.9.2008, 12:56
Цитата(Staruha @ 10.9.2008,  08:03)
Цитата

(512 Мб оперативы, пень 2,4)

А добавить память слабо?

Флудильня в другом разделе. Было бы возможно не спрашивал бы. Это дома можно позволить себе пользоваться нелицензионным продуктом либо изменить конфигурацию компа, в коммерческой организации первое невозможно, второе процесс  очень долгий. Вопрос решен.

Автор: Bose 15.9.2008, 14:22
0rsh, мне частенько приходится работать с разными версиями одних и тех же библиотек. 
Сорри, слишком много нужно описать чтобы всё заработало, но сейчас нет времени, поэтому поэтому расскажу в общих чертах саму идею. Правда, она сработает, только при условии очень грамотной организации рабочего места. 


Я решил это строгим заданием выходных папок для всех проектов. Все Dcu в одной папке, все BPL(кроме стандартных) в другой(с внесением в Path).  http://vingrad.ru/blogs/bose/organizatsiya-strukturyi-papok-pri-rabote-v-delphi/.


Далее, в Delphi(я пользуюсь 6й версией), в Options->Environment Options->Environment Variables в секции User Overrides добавил 2 своих переменных:
WORK = D:\Work\DevelopD6_FIB
WORKCOMP = $(WORK)\packages_fib

WORK - это путь до рабочей папки, WORKCOMP - путь до папки с компонентами. 

Примечание: по ходу я ступил, что не сделал переменную WORK системной.

Далее, во всех проектах все выходные пути прописаны с использованием переменной $(WORK). Примерно так:
Output path: $(WORK)\Build\Bin\
Dcu path: $(WORK)\Build\Dcu\
На самом деле, во всех проектах прописывать пути не пришлось, большинство компонент унаследовали пути от дефолтных.

Пути до всех BPL-ок разумеется должны быть включены в системную переменную Path.(Чтобы не возникало конфликта с BPL-ками, я переименовал все папки с бпл).

Чтобы переключиться на работу с другой версией библиотек, я делаю следующее:
1) изменяю переменную $(WORK). 
2) Переключаю активные package в дельфи с помощью http://blog.bprasetio.or.id/delphi-package-selector/. (Осторожно, прога немного недоделанная, перед тем как что-то менять ОБЯЗАТЕЛЬНО нужно выбрать текующую версию Дельфи).

Ах, да. Крайне желательно чтобы был какой-то скрипт, который может пересобрать все компоненты и раскидать скомпилированные папки нужные dcu, bpl, drc и res файлы. Ибо чем вручную перекомпилировать все либы при переключении, проще воспользоваться тормозной Виртуалкой.

Автор: ne0n 15.9.2008, 21:23
у меня ваще на одной машине спокойно уживаються Delphi 6, Delphi 7 и Delphi 10 Lite - как один из вариантов)

Автор: 0rsh 16.9.2008, 13:50
Bose, спасибо за хороший вариант. На данный момент решил все же пользоваться виртуалкой, т.к. необходимо быстро переключаться между проектами, поэтомуоба варианта должны быть всегда в боевой готовности

Автор: AndrewVasiliev 6.10.2008, 13:56
Есть еще такая штука Altiris Software Virtualization Solution. 
Каждое приложение устанавливается в свой "слой" и когда нужно, то активируешь нужный и работаешь.
Ставь сколько угодно Delphi 7 с разными компонентами.
Друг друга они не видят. 
Размер всего 3,5 мб.
Правда их купили Symantec и новые версии этого продукта начинают толстеть, но можно найти версию 2.1 (это последняя версия от Altiris до покупки)

Автор: Bose 6.10.2008, 15:36
Цитата(AndrewVasiliev @  6.10.2008,  13:56 Найти цитируемый пост)
Есть еще такая штука Altiris Software Virtualization Solution. 
Каждое приложение устанавливается в свой "слой" и когда нужно, то активируешь нужный и работаешь.
Ставь сколько угодно Delphi 7 с разными компонентами.
Друг друга они не видят. 
Размер всего 3,5 мб.

Судя по инфе на сайте Symantec-a они платные. 

В этом смысле, есть более простой вариант - создать нового пользователя в Windows. Настройки Дельфей разделяются между пользователями, так что если нужна возможность использовать одну версию Delphi с разными настройками, то это самое то. =)

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

Автор: CodeMonkey 8.1.2009, 21:16
Не знаю, насколько ещё актуально. Сейчас читаю книгу Марко Кэнту. Там есть такие слова (перечисляются нововведение Delphi 2009):

Цитата
The -idecaption Flag
You propbably know (although this was a well-kept secret for many years) that you can run multiple instances of the IDE, possible at the same time, with different registry settings using the -R command line flag.
The problem if you run two different versions of the IDE at the same time is that it is hard to tell which is which. Another companion command line for the IDE is -idecaption, that takes a caption as value. Summing the two flags you could run the IDE with the following link:
"C:\Progam Files\CodeGear\RAD Studio\6.0\bin\bds.exe" -pDelphi -rSmall -idecaption="Small Tiburon"
If not specified from the command line, the IDE caption is retrieved from the Registry, in the Personalities section, in which there is a different string for each version (or active personality) of the IDE.


Вероятно, если вы найдёте D2007 Handbook, то там про флаг -R будет рассказано больше. Без понятия, применимо ли это и в какой мере к D7.

Автор: CodeMonkey 29.1.2009, 16:13
http://tondrej.blogspot.com/2004/09/undocumented-delphi-ide-command-line.html:
Цитата
One thing you can do with all versions of Delphi from at least D5, is use the "-r" command-line switch. This allows you to specify the root registry key to use when loading the IDE. For instance in D7, you could export the HKCU\Software\Borland\Delphi key to a file. Then rename the "Delphi" key to something else, like "SafeMode". Then re-import the exported key to recreate the HKCU\..\Delphi key. Finally, when you run the Delphi32 application, just pass the "-rSafeMode" switch to use that key.

Автор: Bose 29.1.2009, 18:36
CodeMonkey -  smile 

Вот же блин! :?%*?:№;(<- мат-перемат). Вечно этот Delphi сюрпризы преподносит. Только подумаешь, а хорошо бы "такую-сякую суперфичу" в него, только начнёшь придумывать как это реализовать, только реализуешь.. А через год, вясняется, что разработчики Delphi предусмотрели такой запрос и даже сделали наработки. Вот только раструбить об этом на каждом углу забыли. smile 

Автор: CodeMonkey 4.8.2009, 19:51
Кстати, в новом help-е, в топике "http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/idecommandline_xml.html" этот ключ документирован.
Вот и ругай новых help после этого  smile 

Автор: Bose 5.8.2009, 23:22
Цитата(CodeMonkey @  4.8.2009,  18:51 Найти цитируемый пост)
Вот и ругай новых help после этого  smile 

Большее количнство актуальной информации - это наверное единственный плюс в новых хелпах. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)