Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 自定义组件创建-如何在工具选项板中添加表示组件的小图标?_Delphi_Icons_Delphi 2009_Custom Component - Fatal编程技术网

Delphi 自定义组件创建-如何在工具选项板中添加表示组件的小图标?

Delphi 自定义组件创建-如何在工具选项板中添加表示组件的小图标?,delphi,icons,delphi-2009,custom-component,Delphi,Icons,Delphi 2009,Custom Component,请记住,我已经阅读了所有关于将组件图标添加到自定义组件的说明。我能做到这一点,当我们谈论图标大小是24x24像素。当一个组件被放到表单上时,我会看到图标。但是,我看不到浏览工具选项板时应显示的小16x16图标 我建议我将DCR文件中包含的另外两个BMP文件命名为: MyComponentName16[用于16x16 BMP文件] MyComponentName32[用于32x32 BMP文件] 不幸的是,这似乎不起作用,我已经尝试重新启动Delphi几次,希望它可能不会刷新某些内容,但没有任何成

请记住,我已经阅读了所有关于将组件图标添加到自定义组件的说明。我能做到这一点,当我们谈论图标大小是24x24像素。当一个组件被放到表单上时,我会看到图标。但是,我看不到浏览工具选项板时应显示的小16x16图标

我建议我将DCR文件中包含的另外两个BMP文件命名为:

MyComponentName16[用于16x16 BMP文件]

MyComponentName32[用于32x32 BMP文件]

不幸的是,这似乎不起作用,我已经尝试重新启动Delphi几次,希望它可能不会刷新某些内容,但没有任何成功


有什么想法吗?

您可以尝试清除IDE包缓存:

  • 从Delphi IDE中卸载组件的包
  • 在注册表中浏览到以下项
    HKEY\U CURRENT\U USER\Software\CodeGear\BDS\6.0\Package Cache\
  • 查找并删除与包名对应的密钥(如
    MyPackage.bpl
  • 现在浏览到下一个键
    HKEY\U CURRENT\u USER\Software\CodeGear\BDS\6.0\Palette\Cache\
  • 查找并删除与包名对应的密钥(如
    MyPackage.bpl
  • 最后尝试重新安装您的软件包;现在,它应该显示正确的图标
资料来源:

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

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

您正在使用的bmp的位深度是多少?如果您更改(只需添加)这些图标之类的包资源,请尝试打开包,卸载它,然后添加资源,将它们包含到所需的单元中,重新构建包并重新安装(而不是重新启动IDE)。或者,如果您执行了所有这些操作,您可能会遇到缓存包的问题(如所述,例如,可能甚至有一些用于缓存清除的命令行参数,对此不确定)。在您链接的问题的公认答案中,您是否看到有关图像名称必须使用大写的注释?(例如,
TMYCOMPONENTNAME16.BMP
TMYCOMPONENTNAME32.BMP
)自Delphi 1以来就存在所有CAP要求;这与在IDE中按名称加载资源有关。这是一个Delphi非常糟糕的领域。IDE确实可以帮助隐藏丑陋的低级细节,但事实并非如此。谢谢大家的关注。我曾多次尝试重新安装packagae,但都没有成功,我的名称是大写的,位深度是24@TLama我没想到你给出的链接下的解决方案会起作用,但它起作用了:)你能把你的评论升级到答案吗?我在我的Windows桌面上编辑了快捷方式,添加了-nocache,重新启动了Delphi,它就起作用了!谢谢特拉玛!Delphi 10.3.3:“C:\Program Files(x86)\Embarcadero\Studio\20.0\bin\bds.exe”-pDelphi-nocache