【发布时间】:2013-02-06 01:29:43
【问题描述】:
我有一个带有 16x16 图标的 Delphi 6 应用程序。最近我做了它的64x64版本并重新编译了应用程序。
当我运行应用程序时,这个高分辨率图标会显示在 Windows 7 Superbar 和任务管理器中。它显示在 .exe 文件属性中。
但是当我在桌面上创建快捷方式时,它会显示一个拉伸的低分辨率图标 (16x16)。当我转到此快捷方式的属性时 - 它显示了 64x64 版本。要在快捷方式上显示高分辨率图标,我必须转到快捷方式图标的属性,单击唯一可用的高分辨率图标,单击“确定”和“应用”并执行此序列两次。
如果我删除快捷方式并尝试再次创建它,它会再次显示 16x16 图标,直到我分配了两次图标。
我专门研究了 .res 文件 - 只有一个图标。
我已清除图标缓存,注销并登录。仍然没有改变行为。 这种行为可以在其他装有 Windows 7 的计算机上重现。
我不知道发生了什么。它是从高分辨率制作低分辨率版本还是将以前的版本缓存在某个地方?
【问题讨论】:
-
这是缓存问题。您需要找到一种方法来清除具有旧引用的缓存。您需要超过 64px 的图标。您至少需要 16、32、48 和 256
-
您需要在同一个图标文件中包含多个大小和颜色深度的图标,因此 Windows 有适当的选择可供选择;否则,它会将默认图标缩放到所需的分辨率。也许the answer here 可以提供帮助。
-
@Ken White:我会尝试多个图标。你说:“否则,它会将默认图标缩放到它需要的分辨率”。诀窍是它需要一个绝对大于 16x16 的图标,但将其缩小到 16x16,然后拉伸到必要的大小。多么愚蠢!
标签: delphi windows-7 delphi-6 desktop-shortcut