Delphi - 编译后的EXE图标错误且无法更改

5
我第一次在使用Delphi 15年的经验中遇到了这个奇怪的问题。这是我在项目选项(XE4)中设置的图标: enter image description here 但是编译后的应用程序图标却是这样的: enter image description here 我不知道这个图标是从哪里来的,而且我没有办法改变它(真的让我很疯狂)。这个项目的图标已经好了一年多,直到今天才出问题。以下是我尝试过但都没有成功的方法:
- 使用“加载图标...”按钮将其更改为另一个完全不同的图标并重新构建。 - 使用“默认”按钮重置为默认图标并重新构建。 - 删除project1.res文件并重新构建。 - 删除.dproj文件,打开.dpr文件,然后让Delphi IDE创建一个空的新.dproj文件。但仍然没有成功。 - 我认为这可能是Windows 7的IconCache.db文件损坏了,于是删除了该文件并重新启动了Windows,但没有帮助。实际上,我使用Resource Hacker确认了不是Windows Explorer显示错误的图标,而是EXE中的图标资源出了问题...太奇怪了。 - 将.dproj文件从SVN还原到昨天(昨天的图标是好的)的版本,但仍然没有成功。
你有什么其他建议吗?谢谢!

主要图标是按字母顺序排序时首先出现的那个。使用资源解包器检查exe文件,看看哪个图标是这样的。它可能来自您最近添加的代码。 - David Heffernan
@DavidHeffernan Resource Hacker显示EXE中只有3个图标,而且都是相同的,截图:https://screenpresso.com/=MIPyg - Edwin Yip
1个回答

10

查看主窗体中的代码行{$R *.res}。我遇到了同样的问题,原因是这一行被意外删除了。这会导致最终可执行文件中的图标和其他资源不正确,如版本号、图标等。

如果你不知道这是什么,请创建几个空的新VCL应用程序并在主窗口中搜索它。


你是指 {$R *.dfm} 吗?它在主窗体的 .pas 文件中。 - Edwin Yip
2
啊,是的,Diego,你说得对!.dpr 项目源文件中缺少 {$R *.res} 指令,加回去就解决了问题!也许我今天太累了 ;) 谢谢 Diego、David 和 stackoverflow!我爱 Delphi 社区 :) - Edwin Yip
2
你的版本控制系统应该已经揭示了这个问题。 - David Heffernan

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