delphi - Delphi 2007 中更改图标的问题

标签 delphi icons

我一直在使用别人制作的程序,我想更改图标。

我的图标是256x256。我用过http://converticon.com/创建图标(我认为是来自 bmp)。我使用 Inno Setup 中的图标创建了一个安装程序,效果很好

因此,我转到“选项”->“应用程序”并尝试加载它。但是,Delphi 2007 给我一个错误“参数不正确”。包含以下信息:/image/vRCgs.png

当我在 Delphi XE 中做同样的事情时,它会工作并加载图标并在编译时更改它。我现在无法使用 XE,因为该程序使用的数学解析器存在 unicode 问题(这是稍后修复的问题,哈哈)

所以,我所做的是在 XE 中打开项目,更改图标,保存它,删除 dproj 并在 2007 年打开它。这可以工作,编译并显示正确的图标,但是当我进入项目选项时,它给了我同样的“参数不正确”错误。

解决方法并不是什么大问题,但我不需要这样做。有谁知道为什么我无法更改 Delphi 2007 中的图标?

编辑:我刚刚使用同一个 conversionicon 网站将 256x256 图标转换为 192x192 或更小,现在它工作得很好。谢谢各位的解答

最佳答案

“图标”文件实际上是图像的集合,具有不同的分辨率并使用不同的编码。当我创建图标时,我确保它们实际上不包含 256x256 PNG 编码版本,因为 Windows Vista 之前构建的开发工具无法理解这一点。其中包括您的 Delphi 2007 和我的 Delphi 7。我还删除了 alpha 编码的 256x256 图标,因为它只会使文件变得不必要的大。

您有两个可能的修复方法:

  • 找到一个 ICO 编辑器并删除所有较大的格式,直到您的 Delphi 接受该图标。 我个人从未在现实世界中见过 256x256,它们会占用用户桌面或 Windows 资源管理器中的大量空间。
  • 使用虚拟图标,并在 Delphi 完成后替换生成的 exe 中的图标资源。这样您就可以保留所有较大的图像格式,包括 256x256 PNG 图像。
<小时/>

编辑以更正错误

如果可能,请始终包含 256x256 图像,Windows 会针对 64x64 以上的所有图像进行缩小。

我一直认为 Windows 资源管理器会显示基于 ICO 中可用的最接近匹配图像大小的图像。也就是说,如果需要 128x128 图像,Windows 将使用 128x128 图像(如果可用),或者缩小 256x256 图像(如果可用),或者放大 96x96 图像。显然事实并非如此。我刚刚制作了一个由多种图像格式组成的测试图标,包括由简单的颜色 Blob 组成的 32、48、72、96、128 和 256(使用洪水填充工具)。在 Windows 资源管理器中,我循环抛出各种显示模式,很明显,从“大图标”(不是很大)开始,Windows 会缩小 256x256 图标,如果不可用,请使用未缩放的 48x48 图标!结果确实丑陋且出乎意料。 72x72、96x96 和 128x128 图标被简单地忽略。

感谢大卫指出这一点。

关于delphi - Delphi 2007 中更改图标的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216212/

相关文章:

wpf - Windows 10 所有 DPI 设置上的所有图标分辨率?格式?像素艺术作为图标?开始菜单中等磁贴中的大尺寸图标?

delphi - 在 HostApp 和 DLL 之间预分配内存

delphi - 未使用单位的影响是什么?它会使输出的exe更大吗?

delphi - 如何修复 Delphi 2010 IDE 中损坏的上下文相关帮助

button - 当按钮处于加载状态时,如何向按钮添加微调器图标?

iPhone 通知图标

performance - FillChar,但对于整数/基数

delphi - 为什么我的自定义绘制 ListView 上会出现白色的列分隔符?

android - 如何将默认图片应用程序更改为我自己的图片?

ios - 图标名称未正确显示