Delphi 10.3 中未显示自定义组件图标

Custom Component Icons Not Showing in Delphi 10.3

我刚从 Delphi 7 升级到 10.3,并试图安装一些旧的 (VCL) 自定义组件。我终于成功地编译了代码,但我遇到了一些看似微不足道的事情。调色板中自定义组件的图标显示的是默认图标,而不是我期望的图标。这里有很多关于组件图标问题的帖子(大多数都超过 5 年了),我尝试过自编译 .rc 文件,包括包源中的 { $R .rc} 并使用 Project/Resources 和图像对话框来指定图标。我试过 24x24 的 8 位、16 位、24 位图标。然后作为测试,我按照 here 所示的确切步骤进行操作,其中包括我能找到的有关此问题的一些最新内容。我尝试使用全分辨率的位图文件和 8bpp 的 32bpp 和 24x24。在这两种情况下,该测试组件都显示默认图标。我可能忽略了一些简单的事情,但我对接下来要尝试的事情有点不知所措。与旧版本相比,10.3 中为自定义组件指定图标的过程是否有所不同?

编辑:更新 - 我重新安装了我的自定义组件,然后重新启动,然后能够看到调色板中反映的正确图标,但这就是它变得奇怪的地方。我上面链接的测试组件即使在重新安装和重新启动后仍然显示默认图标,甚至更奇怪的是,我在表单上使用我的自定义组件的第二个,调色板中的图标恢复为 TEdit 图标(该组件是后代TEdit 的)。关闭 Delphi 并重新打开会恢复图标,直到再次使用它。

我不确定我是否应该回答我自己的问题,但只是想更新以防以后对别人有帮助。我终于能够通过使用 here 中描述的 -nocache 选项来显示示例测试组件图标。然后我清除了我自己的组件 (dclusr) 的注册表缓存,如同一 post 中所示,然后还将位图从 8bpp 更改为 32bpp,现在一切似乎都按预期工作。然后我清除了示例项目的注册表项,我可以 运行 没有 -nocache 选项并且所有图标都显示正常,所以我认为这主要是一个缓存问题,如果没有引用 post.