Установка компонента в dclusr.dpk ломает другие компоненты

Сначала я установил библиотеку RX 2.75 и некоторые другие.
Затем я пытаюсь установить пользовательский (не мой) компонент TMyLookupEdit который получен из TRxLookupEdit,
Я делаю это через главное меню -> Компонент -> Установить компонент... и выбираю .pas файл компонентов

И когда Delphi пытается восстановить dclusr.dpk, я получаю что-то вроде этого (не помню, чтобы воспроизвести его, я не нашел другого способа, кроме как переустановить Delphi):

Can't load package c:\program files\borland\delphi6\Projects\Bpl\dclrx6.bpl.
Cannot load package 'RxCtl6.'  It contains unit 'FileUtil,'which is also contained in package 'RxCtl660'

Тогда IDE говорит мне, что MyLookupEdit компонент установлен, и около 100 других компонентов не установлены. Все компоненты RX ушли из палитры

Я уверен, что я установил только RxCtl6, а не RxCtl660. Но теперь они оба находятся в C:\Program Files\Borland\Delphi6\Projects\Bpl. Единственная подсказка, которую я имею, - это то, что #define в файле dclusr.dpk (см. Ниже)

Как я могу заставить RX и этот компонент работать вместе?


Вот мой dclusr.dpk (большинство #defines опущены):

{$LIBSUFFIX '60'}

requires
  rtl,
  vcl,
  designide,
  vcldb,
  dbrtl,
  vclx,
  VclSmp,
  RxCtl6,
  RxDB6;

contains
  RegGrid in '..\..\..\..\_work\Delphi\__Install\__Components\No-package components\RegGrid\RegGrid.pas',
  Tabenter in '..\..\..\..\_work\Delphi\__Install\__Components\No-package components\TABENTER.PAS',
  MyLE in '..\..\..\..\_work\Delphi\__Install\__Components\No-package components\MyLookupEdit\MyLE.pas';

end.

Решение

  1. Удалить {$LIBSUFFIX '60'} из dclusr.dpk
  2. Удалить файл dclusr60.bpl
  3. Перестройте dclusr.dpk

Большое спасибо Сергею за указания!

1 ответ

Решение

Я уверен, что я установил только RxCtl6, а не RxCtl660. Но они оба находятся в C:\Program Files\Borland\Delphi6\Projects\Bpl

Сосуществование RxCtl6.bpl и RxCtl660.bpl означает, что ваш пакет RxCtl6 был каким-то образом скомпилирован с директивой {$LIBSUFFIX '60'} и без нее.

У меня была похожая проблема после установки обновленного пакета компонентов TeeChart, в результате чего TeeChart -зависимые пакеты стали неработоспособными. В качестве быстрого решения вы можете попробовать заменить RxCtl6 и RxDB6 на RxCtl660 и RxDB660 в разделе "требуется". Также проверьте исходные файлы RX *.dpk на наличие директивы {$LIBSUFFIX '60'} - фактическая проблема связана с директивой {$LIBSUFFIX '60'}.

Не переустанавливайте Delphi, если некоторые пакеты исчезают - Delphi хранит информацию об установленных пакетах в реестре, поэтому

  • попытаться исправить проблему в IDE; если это не поможет
  • попробуйте исправить проблему в реестре
Другие вопросы по тегам