即使Delphi 2010显示安装在组件包列表中,它也不会在工具选项板中显示组件

时间:2010-02-11 15:27:06

标签: delphi delphi-2010

我有一个我维护的组件包,TComPort,一个sourceforge项目。我最近决定尝试构建C ++ Builder 2010版本的软件包。这些都是建造和安装的。然后我清理了我的系统(这些的所有bpl和dcp痕迹都消失了!)。

现在我有一个奇怪的情况,我构建运行时,并为Delphi 2010构建和安装一个designtime包(带有d14包后缀),当我点击Components - &gt时,组件设计时包显示并被检查;安装包,以及在项目选项中,包显示。在任一位置,单击“COmponents”按钮会显示该包中存在这些组件。

但是,包内的组件不在Tool Palette中。这些组件的源代码没有真正的变化。而且我不知道为什么Delphi 2010采用这种方式,或者为什么它告诉我安装我的设计时包时,组件包安装正确,但是,没有任何组件会出现。

编辑:(解决方法:在调用RegisterComponents时更改'Page'字符串参数,这个问题可以解决。但是,这很烦人,我无法弄清楚如何清理它)

这是杀手。当我打开包含该组件的DFM时,它也会显示出来。只有工具调色板才能阻挡我。是的,我重置了组件面板。 我还决定召唤delphi 7组件调色板的鬼魂(右键单击屏幕顶部并单击组件以获取旧的经典组件调色板)。它不存在。

我怀疑这可能是Delphi 2010中一个令人讨厌的错误。我希望有人见过这样的东西。我告诉你,它杀了我,杀了我。

编辑: 我已清理注册表项HKEY_CURRENT_USER \ Software \ CodeGear \ BDS \ 7.0 \ Package Cache [我的包名在这里]并且没有任何更改

编辑: 我将RegisterComponents('foo',[TMyComponent1,....])更改为RegisterComponents('bar',...),突然他们回来了。德尔福2010在哪里存储“我讨厌类别Foo”?这很糟糕。

3 个答案:

答案 0 :(得分:2)

如果您安装了组件,然后自定义了工具选项板,要么将组件放在其他页面上,要么从所有页面中删除组件,那么IDE将记住,以便卸载和重新加载包不会破坏您的自定义。 IDE显然通过使用其原始注册页面跟踪组件名称来保持该设置。更改页面注册名称时,保存的设置将被清除。

如果是这种情况,那么您可以从调色板中手动删除该组件。要在不更改注册码的情况下将其恢复到调色板上,请通过反转用于删除它的任何过程手动将其重新添加到调色板。

答案 1 :(得分:1)

尝试右键单击工具选项板(在搜索编辑右侧区域和鼠标指针中),然后选择“取消隐藏按钮”。如果该类别已被隐藏(或其中的所有项目都已隐藏),您应该能够单独取消隐藏它们,这样可以使该组再次可见。

(我刚刚通过删除整个Win 3.1类别进行了测试,我从未使用过;我可以使用上面的步骤通过取消隐藏其中包含的一个按钮(如TOutline)来重新显示它。)

答案 2 :(得分:0)

我在RAD2007中遇到过类似问题:安装成功但有一天CPortLib页面从Tool Palette中消失了。

我在更改了所有参数

的注册表后,立即开始工作了

[Borland \ BDS \ 5.0 \ Package Cache \ DsgnCPortD2007.bpl] “需求加载包”=“1”

到“0”。

此IDE再次显示CPortLib页面。

Morover,将参数恢复为1也是正常的,因为IDE会根据需求加载取消资格,如

所述

Delphi 2005中的需求加载组件包 http://blogs.embarcadero.com/abauer/2004/11/15/1833

(我在生成的.rpt文件中看到取消资格)。

我不知道为什么这个技巧有效,但它对我有用,我希望它对其他人有效(本帖子的读者数量为4500)。