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