带有资源文件的错误 EXE 应用程序图标

sMa*_*Mah 5 delphi resources icons

我正在探索 (.Res) 资源文件,并在 delphi.about.com 站点上找到了一个有用的教程。

教程链接:http : //delphi.about.com/od/objectpascalide/l/aa113099a.htm

下载测试项目:http : //delphi.about.com/library/aboutres.zip

我发现 Windows 资源管理器中的应用程序图标不同。申请表上的图标正确显示(参见图 2)。Windows 任务栏上的图标正确显示(参见图 3)。

但是当我浏览它时,Windows 资源管理器中的图标是错误的(请参阅图 1)。它不是来自 Res 文件的 MAINICON。

知道它有什么问题吗?我需要配置什么才能使用 .EXE 文件获得正确的应用程序图标?

  • Delphi XE3 环境
  • Windows 7 环境
  • 您可以从上面的链接下载示例项目

图片编号 (1)

Windows 资源管理器中的 EXE 应用程序图标错误

图片编号 (2)

应用程序图标正确显示在任务栏上

图片编号 (3)

应用程序图标正确显示在表单上

提前致谢

Ser*_*yuz 4

由于没有提示要显示哪个图标,shell 会选择 ID 最小的图标,或者按字母顺序排列的第一个图标。您的可执行文件中有三个图标:ICOFOLD、ICOOK 和 MAINICON。ICOFOLD 是要在 shell 文件夹中显示的文件夹。

任务栏或表单图标是通过WM_SETICON在程序运行后发送消息来设置的。因此,没有任何猜测。

  • 我通过确保所有其他图标的名称都出现在 MANICON 之后来实现这一点。如果您不想这样做,您可以只包含应用程序图标两次。一次是 MAINICON,一次是 ID 为 1,或者是按字母顺序排列在所有其他名称之前的名称。 (2认同)
  • @David - 我不知道,我实际上从未想过它。你的思维方式是有道理的,但根据我的经验,我不能说探险家在这方面真的很快。 (2认同)