Delphi 2010 не будет показывать компонент в палитре инструментов, даже если он показывает установленный в списке пакетов компонентов - PullRequest
3 голосов
/ 11 февраля 2010

У меня есть пакет компонентов, который я поддерживаю, TComPort, проект sourceforge. Недавно я решил попытаться собрать версию пакетов для C ++ Builder 2010. Те были построены и установлены. Затем я очистил свою систему (все следы bpl и dcp исчезли!).

Теперь у меня возникла странная ситуация, когда я собираю среду выполнения, собираю и устанавливаю пакет designtime для Delphi 2010 (с суффиксом пакета d14), и пакет designtime компонента обнаруживается и проверяется, когда я нажимаю Components -> Установить пакеты, а также в Project Options, пакет обнаруживается. В любом месте, нажав кнопку COmponents, вы увидите, что эти компоненты есть в этом пакете.

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

РЕДАКТИРОВАТЬ: (Обходной путь: Изменить строковый параметр «Страница» при вызове RegisterComponents, и эта проблема решена. Однако, это чертовски раздражает, и я не могу понять, как это убрать)

А вот и убийца. Когда я открываю DFM, который содержит этот компонент, он тоже появляется. Это только палитра инструментов, которая сдерживает меня. Да, я сбросил палитру компонентов. Я также решил вызвать призрак палитры компонентов delphi 7 (щелкните правой кнопкой мыши вверху экрана и выберите компоненты, чтобы получить старую классическую палитру компонентов). И его там тоже нет.

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

EDIT: Я очистил раздел реестра HKEY_CURRENT_USER \ Software \ CodeGear \ BDS \ 7.0 \ Кэш пакета [мои имена пакетов здесь] и не изменил либо

EDIT: Я изменил RegisterComponents ('foo', [TMyComponent1, ....]) на RegisterComponents ('bar', ...), и внезапно они вернулись. Где Delphi 2010 хранит «Я ненавижу категорию Foo»? Это плохо.

Ответы [ 3 ]

2 голосов
/ 12 февраля 2010

Если вы установили компонент, а затем настроили палитру инструментов, чтобы поместить компонент на какую-то другую страницу или удалить компонент со всех страниц, тогда среда IDE запомнит, чтобы выгрузка и перезагрузка пакета не помешала вашим настройкам. Среда IDE, очевидно, сохраняет эту настройку, отслеживая имя компонента по оригинальной зарегистрированной странице. При изменении имени регистрации страницы сохраненные настройки очищаются.

Если это так, то вы вручную удалили компонент из палитры. Чтобы вернуть его на палитру без изменения регистрационного кода, вручную повторно добавьте его в палитру, выполнив обратный процесс, который вы использовали для его удаления.

1 голос
/ 12 февраля 2010

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

(Я только что проверил это, удалив всю категорию Win 3.1, которой я никогда не пользуюсь; затем я могу использовать описанные выше шаги, чтобы отобразить ее заново, отобразив одну из кнопок, содержащихся в ней, например TOutline.)

0 голосов
/ 30 октября 2015

У меня была похожая проблема в RAD2007: установка прошла успешно, но однажды страница CPortLib исчезла из палитры инструментов.

Я получил его теперь после изменения в реестре всех вхождений параметра

[Borland \ BDS \ 5.0 \ Кэш пакета \ DsgnCPortD2007.bpl] «Пакет нагрузки по требованию» = «1»

до "0".

После этого IDE снова показывает страницу CPortLib.

Более того, возвращение параметра в 1 также нормально, потому что IDE дисквалифицирует пакет как загруженный по требованию, как описано в

Загруженные по требованию пакеты компонентов в Delphi 2005 http://blogs.embarcadero.com/abauer/2004/11/15/1833

(я вижу дисквалификацию в сгенерированном файле .rpt).

Я не знаю, почему этот фокус работает, но он работает для меня, и я надеюсь, что он подойдет другим (> 4500 читателей этого поста).

...