Резюме
Некоторое время не пользовался Delphi, но разработал свои собственные визуальные элементы управления (последняя версия, над которой я работал, была Delphi 6).
При работе с пакетными зависимостями существует 2 проблемы. Один из них устанавливается в среде Delphi, в результате чего элементы управления отображаются на палитре компонентов, а также редакторы компонентов и редакторы свойств.
И еще при распространении скомпилированных пакетов на клиентские машины.
Это также зависит от того, какую версию Delphi вы используете.
Время проектирования
При разработке пользовательского пакета есть вкладка для параметров пакета, в которой указываются папки назначения.
Руководства обычно говорят разработчикам оставлять эти текстовые поля пустыми. Это иногда работает, иногда нет. Я подробно пишу путь к каждой папке в соответствующем текстовом поле.
Существует путь текстового поля для файлов " .dcp", другой для " .dcu" и т. Д.
Если у вас есть визуальные элементы управления и такие вещи, как редакторы свойств или редакторы компонентов, лучше разделить код на 2 пакета («Время выполнения» и «Время разработки»).
Обычно я помещаю проекты delphi (пакеты) вне папки установки delphi.
Время выполнения
Обычно, быстрый способ - это поместить файлы "* .bpl" ".dcp" в папку Windows (32) / system или аналогичную папку Windows "DLL".
Подсказка по исходному коду структуры папок
Управление пакетами может быть затруднено. Я не знаю, насколько сильно изменился процесс установки с Embarcadero и более новыми версиями Delphi. Следующая диаграмма - пример того, как организовать исходный код. Надеюсь, это поможет.
[-]--+--c:
.....|
.....+--[-]--+--software
.............|
.............+--[+]-----java
.............|
.............+--[+]-----php
.............|
.............+--[-]--+--delphi (not the delphi folder in program files)
.....................|
.....................+--[+]-----apps (source code for delphi programs)
.....................|
.....................+--[+]-----other
.....................|
.....................+--[-]--+--packages (all delphi packages source code here)
.............................|
.............................+--[+]-----lib (a single package for non visual controls, libraries)
.............................|
.............................+--[+]-----tools (package pair for non visual tcomponent descendants)
.............................|
.............................+--[+]-----json (example)
.............................|
.............................+--[+]-----xml (example)
.............................|
.............................+--[-]--+--mycontrols (folder custom visual controls)
.............................|.......|
.............................|.......+--[-]--+--delphi40 (folder for delphi40 version of "mycontrols")
.............................|.......|.......|
.............................|.......|.......+----------dsgvclctrls40.dpk (design-time package "mycontrols")
.............................|.......|.......|
.............................|.......|.......+----------runvclctrls40.dpk (run-time package "mycontrols")
.............................|.......|.......|
.............................|.......|.......+--[+]--+--demos (individual example for each "mycontrol")
.............................|.......|.......|
.............................|.......|.......+--[+]--+--design ("*.pas" component editors destination folder)
.............................|.......|.......|
.............................|.......|.......+--[+]--+--sources ("*.pas" source code destination folder)
.............................|.......|.......|
.............................|.......|.......+--[+]--+--bin ("*.dcu" destination folder)
.............................|.......|........
.............................|.......+--[+]--+--delphi50 (folder for delphi50 version of "mycontrols")
.............................|.......|........
.............................|.......+--[+]--+--delphi60 (folder for delphi60 version of "mycontrols")
.............................|.......|........
.............................|.......+--[+]--+--delphi70 (folder for delphi70 version of "mycontrols")
.............................|................
.............................+--[-]-----etc...
Приветствие.