自定义组件创建 - 如何在工具栏中添加代表组件的小图标?

6
请记住,我已经阅读了所有有关将组件图标添加到我的自定义组件的说明。当我们谈论24x24像素的图标大小时,我能够做到这一点。当组件放置在表单上时,我可以看到图标。但是,当浏览工具面板时,我无法看到应该显示的小型16x16图标。
我已经阅读了建议,应该像这样命名包含在DCR文件中的另外两个BMP文件:
MyComponentName16 [用于16x16 BMP文件]
MyComponentName32 [用于32x32 BMP文件]
不幸的是,这似乎无效。我尝试重新启动Delphi几次,希望它可能是不刷新某些内容的情况,但没有任何成功。
有什么想法吗?

你使用的 BMP 的位深度是多少? - RRUZ
如果您更改(或添加)软件包资源,例如这些图标,请尝试打开您的软件包,卸载它,然后添加资源,将其包含在所需的单元中,重新构建软件包并重新安装它(而不是重新启动IDE)。或者,如果您已经完成了这些操作,您可能会遇到缓存软件包的问题(例如here中所述),也许有一些命令行参数用于清除缓存,但不能确定。 - TLama
在您所链接的问题的被接受答案中,您是否看到了有关图像名称必须大写的评论?(例如,TMYCOMPONENTNAME16.BMPTMYCOMPONENTNAME32.BMP。)全大写的要求自Delphi 1以来就存在;这与在IDE中按名称加载资源有关。 - Ken White
这是Delphi真正糟糕的地方。IDE实在可以帮上大忙,隐藏丑陋的底层细节,但它没有这样做。 - Wouter van Nifterick
谢谢大家的关注。我尝试多次重新安装软件包,但没有成功,我将名称大写并且位深度为24。@TLama,我没有预料到你提供的链接会起作用,但它确实起作用了 :) 你能将你的评论升级为答案吗? - Wodzu
1个回答

10
您可以尝试清除 IDE 包缓存:
  • 从您的 Delphi IDE 卸载组件包
  • 在注册表中浏览到以下键
    HKEY_CURRENT_USER\Software\CodeGear\BDS\6.0\Package Cache\
  • 查找并删除与您的包名称相对应的键(如 MyPackage.bpl
  • 现在浏览到下一个键
    HKEY_CURRENT_USER\Software\CodeGear\BDS\6.0\Palette\Cache\
  • 查找并删除与您的包名称相对应的键(如 MyPackage.bpl
  • 最后尝试重新安装您的包;现在它应该显示正确的图标

来源:http://www.lnssoftware.ca/blog/?p=140

作为另一种解决方法,您可以尝试使用未记录的命令行参数运行 Delphi IDE:

c:\Program Files (x86)\CodeGear\RAD Studio\6.0\bin\bds.exe -nocache

2
我在Windows桌面上编辑了快捷方式,添加了-nocache,重新启动了Delphi,现在它可以工作了!谢谢TLama!Delphi 10.3.3:"C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\bds.exe" -pDelphi -nocache - El Diablo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接