Подтвердить что ты не робот

Как правильно установить пути "Каталоги/Условные" и "Библиотека"

Как установить "Каталоги/условные обозначения" в параметрах проекта и "Библиотека" в параметрах среды? Помощь Delphi не говорит об этих очень важных настройках. У меня есть все странные ошибки из-за неправильных зависимостей между моими VCL.

1.

Я объединил большой набор сторонних элементов управления в пакете ThirdPartyPackages_D7.dpk. Это полезно, когда я переустанавливаю Delphi, потому что мне не нужно постоянно переустанавливать все эти сторонние VCL.

Затем у меня есть свои собственные элементы управления в MyControls_D7.dpk, которые зависят от третьего класса VCL. У меня также есть еще один пакет BlgPackage.dpk, который зависит от MyControls.

В конце цепочки находится мое приложение (проект DPR), в котором используются элементы управления в BlgPackage.

ThirdPartyPackages.dpk -> MyControls.dpk -> BlgPackage.dpk -> MyApplication.dpr

Когда я изменяю/редактирую что-то во второй пакет (MyControls.dpk) и создаю приложение DPR, он работает. Компилятор видит изменения, внесенные в этот пакет. Однако, если я закрываю проект и загружаю и компилирую BlgPackage, он выдает неприятное сообщение о том, что функция xyz не может быть найдена в MyControls, потому что я удаляю ее (я загрузил единицы MyControls в IDE параллельно с блоками приложений). Кажется, что создание приложения обновляет только файлы DCU для всех используемых пакетов, но не файлы DCP/BLP.

Как написать и скомпилировать код в пакетах без явной загрузки пакетов в среду IDE и их создания? (Примечание. У меня есть неприятная ошибка, которая не позволяет мне переключаться между проектами без перезапуска IDE или одновременно загружать группу проектов/пакетов (*.bpg).)

2.

Другая проблема заключается в том, что я хочу хранить скомпилированные файлы (DCP/BPL/DCU) пакета в своей папке (например, c:\MyProjects\Blg).
Если я установил в папку папку "Каталог выходных каталогов", "Каталог вывода продукта" и "Каталог вывода DCP" пакета BlgPackage, там будут храниться не только файлы BPL/DCU/DCP, но также файлы BPL/DCP MyControls будет храниться там. Как я могу получить двоичные файлы каждого пакета в отдельной папке?


Delphi 7, Win XP, все проекты установлены на "Перестроить по мере необходимости"

4b9b3361

Ответ 1

MY solution (родной, грязный, но он работает):

Я помещал ВСЕ сторонние библиотеки .controls в один пакет (супер-пакет). Я поместил все свои элементы управления в один пакет.

Теперь, когда я переношу пакеты на другой компьютер, все, что мне нужно сделать, это скопировать/вставить две папки и установить два пути.

Работает для меня - другие могут не согласиться с этим, и я не могу обвинять их. Я обвиняю "адских дизайнеров" в Borland/Embarcadero. Если вы посмотрите на StackOverflow, вы увидите, что до сих пор никто не предоставлял элегантное решение.

Ответ 2

  • Вы должны явно компилировать пакеты - просто компилировать файлы пакетов недостаточно и, как вы заметили, приводит к проблемам. В современных версиях Delphi вы можете создать группу проектов (не уверенную о Delphi 7), которая содержит приложение и пакеты, которые вы хотите разработать с приложением, и вы можете легко переключаться между ними и компилировать пакеты без необходимости закрывать/открывать приложение.

  • BlgPackage не должен иметь доступ к источникам пакетов MyControls (через путь "Библиотека" или с использованием одного и того же каталога), он должен иметь доступ только к уже скомпилированному пакету MyControls, иначе файлы из MyControls скомпилируются каждый раз при сборке BlgPackage и скомпилированные файлы хранятся в каталоге DCU BlgControls


ADDED

Путь "Библиотека" должен вести только к файлам скомпилированных файлов (.dcp,.dcu) и (если необходимо) (.res,.dfm) - достаточно собрать приложения и пакеты, для которых требуется пакет "MyControls", Вы можете установить каталог для скомпилированных файлов непосредственно в настройках пакета, и вы должны скопировать файлы ресурсов (если они вам нужны) в тот же каталог вручную. Этот каталог должен быть включен в путь "Библиотека" , иначе вы можете использовать каталог, уже содержащийся в пути "Библиотека" .

Путь "Библиотека" не должен приводить к исходным файлам (.pas), если вы не хотите, чтобы эти файлы компилировались каждый раз при создании BlgPackage или приложения, для которого требуется пакет MyControls.

Ответ 3

Я использую гораздо более простой способ для компонентов третьего partie и переустановки Delphi.

  • Откройте regedit и найдите [HKEY_LOCAL_MACHINE/SOFTWARE/Borland/Delphi/xxx], где xxx - версия и экспорт целиком филиал.
  • Откройте файлы и удалите ключи LMKEY, LMLIC.
  • Скопировать папку C:\Program Files\Borland\Delphi x\Projects\Bpl в другое место
  • Копировать C:\Program Files\Borland\Delphi x\Импорт в другое место
  • Переустановка Delphi, включая любые обновления и GExpert
  • Импорт ранее сохраненных реестров
  • Восстановить папку Bpl и Imports

И whoala, Delphi возвращается со всеми компонентами третьей части и настройками IDE. Единственное ограничение заключается в том, что все компоненты должны находиться в одной папке до и после переустановки Delphi.

Это также восстанавливает настройки TeamSource. Если вы также переустанавливаете Windows, обязательно создайте пользователя Windows с тем же именем пользователя, что и раньше.