Запрет на изменение в среде IDE предложения «require» пакета - PullRequest
1 голос
/ 10 августа 2009

У меня есть общий пакет времени выполнения, который я использую для поддержки приложения, использующего пакеты в качестве системы плагинов. Я включил несколько сторонних устройств в общий пакет, чтобы уменьшить количество BPL, которые должны быть распределены.

Delphi, похоже, испытывает некоторые головные боли при такой настройке, иногда обновляя только файл DCP в области «общего DCP» (C: \ Users \ Public \ Documents \ RAD Studio \ 6.0 \ Dcp на моем компьютере), а не один в выходном каталоге DCP (как указано в опциях проекта).

Хотя это не моя главная проблема ... Моя главная проблема в том, что Delphi часто выдает это диалоговое окно:

Диалоговое окно Delphi Change Package

(это только пример, это происходит и с другими установленными мной пакетами)

Теперь, в Delphi 2009, по крайней мере, когда я отменяю это диалоговое окно (и нажимаю «да» в появившемся диалоговом окне), оно ничего не меняет. Предыдущие версии все равно продолжали бы бить мой файл dpk.

В настоящее время я не могу заставить проклятый диалог перестать появляться. Пакет устанавливается как пакет времени выполнения, в нем нет «обязательных» пакетов (кроме пакетов VCL). Я думал, что его вылизали месяц назад, но он снова начал появляться.

Нет изменений в файле DPK или файле DPROJ.

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

У кого-нибудь есть предложения?

N @

Ответы [ 2 ]

4 голосов
/ 10 августа 2009

Вы должны явно ссылаться на каждую из единиц, упомянутых в диалоговом окне в разделе , содержащем файла DPK. В этом диалоговом окне отображаются только единицы, которые неявно (= не указаны в содержит ) включены, и предлагает требуется пакет, к которому они изначально принадлежали.

2 голосов
/ 10 августа 2009

Если delphi требует этот пакет, это потому, что вы используете единицы, которых нет ни в самом пакете, ни в требуемых пакетах.

Между прочим, если Delphi предлагает вам использовать этот пакет, потому что Delphi «знает» пакет с этими необходимыми вам единицами, а вы не объявляете, также пакет будет скомпилирован с импортированными «безбрачными» этими единицами. Это может привести к несогласованности приложения, если вы работаете с пакетами. Помните, что модуль может быть загружен только один раз в приложении.

...