Я разрабатываю набор компонентов на основе TFrame, которые наследуются друг от друга (как многие знают, которые мне очень помогли на этом пути уже знают!), И натолкнулся на еще одну маленькую "загадку" , "связанные с пакетами и установкой.
По сути, у меня следующая иерархия:
TFrame
TBaseFRame
TBaseSizeableFrame
TViewerType1
TViewerType2
... и панель TExtRzPanel , которая наследуется от панели Raize и добавляет к ней некоторые функции изменения размера / перемещения, а также некоторые другие свойства / функции. TBaseSizeableFrame использует этот компонент и передает большую часть его функциональных возможностей самому фрейму, поэтому я могу визуально разрабатывать составные компоненты Viewer. В целом это работает хорошо.
Все потомки TFrame зарегистрированы в палитре (см.
этот пост для связанного вопроса, который я задал ранее). В настоящее время у меня есть пакеты, настроенные так:
- MyPanels - Содержит TExtRzPanel
- BaseFrames - Содержит TBaseFrame и TBaseSizeableFrame
- ViewerSet1 - Содержит один компонент на основе фреймов Viewer и невизуальный компонент, который вызывает этот Viewer как диалоговую форму. (Я планирую, что в этом пакете будет несколько других зрителей).
Основной ошибкой, с которой начался мой текущий хаос, была эта:
Не удается получить доступ к информации о пакете для пакета 'MyPanels.bpl'
У меня сейчас кружится голова от этой штуки, когда я не могу вспомнить точные последовательности того, что я пробовал и в каком порядке, но проблема, похоже, началась, когда я добавил диалоговую форму в ViewerSet1, которая использует кадр TViewer из того же проекта и который (конечно), таким образом, использует TExtRzPanel (пакет, на который жалуется IDE).
Исходя из этого Я удалил файлы DCP (и тоже файлы DCU, думаю, в какой-то момент), удалил пакеты, а затем перекомпилировал / переустановил их MyPanels -> BaseFrames и получил их все работает до этого момента, но после установки ViewerSet1 все снова разлетается на части.
Другие ошибки, которые я заметил, пытаясь выяснить это, включают в себя:
- Пакет C: \ Documents and Settings \ Все пользователи \ Documents \ RAD Studio \ 5.0 \ Bpl \ MyPanels.bpl не может быть установлен, поскольку он был создан с другой версией Delphi или CBuilder.
Вы хотите попытаться загрузить этот пакет при следующей загрузке проекта? (Примечание. Я собрал его только с ОДНОЙ версией Delphi - Delphi 2007)
- В какой-то момент я заметил, что описание пакета для MyPanels не «забирает» (то есть оно показывается как просто имя файла Tools -> Compoenent -> Install Packages), что заставляет меня думать возможно есть две версии файла, который IDE находит / использует, но я не вижу / не нахожу, что это так.
- При запуске Delphi выдает предупреждение, указывающее, что он не может загрузить установленный пакет, и хотите ли вы загрузить его в следующий раз и т. Д.
- Невозможно получить доступ к информации о пакете для пакета 'MyPanels.bpl' (вспенить, промыть, повторить)
Любая помощь и направление в отношении того, как диагностировать, наряду с любым концептуальным объяснением, которое могло бы помочь мне понять, на что даже обращать внимание, было бы наиболее оцененным. ЗАРАНЕЕ СПАСИБО. Вы, ребята, были так полезны здесь! Спасибо. :)
Обновление позже:
После того, как я немного отложил это и вернулся к нему, я попытался удалить все файлы MyPanels DCP / DCU, а затем пошагово установить три пакета. (VMWare был на вес золота здесь - снимки после каждого успеха, чтобы не начинать сначала, если / когда что-то пошло не так). Оказывается, если я удалил диалоговую форму из пакета ViewerSet1, он устанавливает ОК. Если я затем добавлю форму снова (которая не отображается с ее DFM, как я столкнулся с здесь ), кажется, чтобы установить ОК. У меня не все компоненты установлены и, похоже, работают нормально (и снимок всего этого на моей виртуальной машине!), Но я все еще не уверен, что пошло не так и почему. Что могло сделать добавление этой формы на начальном этапе, что привело бы к таким ошибкам? Любая идея?
Даже лучшее объяснение / понимание того, какие вещи могут вызвать ошибка "Не удается получить доступ к информации о пакете", было бы полезно в долгосрочной перспективе, я думаю.