我的应用程序的"应用程序图标"是错误的.
我的应用程序在任务栏中显示的图标与经典的Delphi图标不同.而是显示我的一个VCL的图标.图标被"窃取"的特定VCL未在我的应用程序中使用,但使用了同一包中的其他VCL.
相关信息: - 如果我将我的应用程序拖放到桌面上,图标看起来没问题. - 当我将光标放在Windows Commander上时,图标看起来没问题. - 当我将其拖放到"按钮栏"中时,Windows Commander中的图标看起来不正常.结论:图标在运行时不会被意外更改(即使应用程序未运行,问题也存在).
我使用Delphi 7.我只是为了确保禁用EurekaLog和FastMM,并重建应用程序.问题仍然存在.我甚至没有丝毫为什么编译器插入错误的图标.我真的需要一些提示.谢谢.
IDE中配置的图标将插入项目的RES文件中,名称为MAINICON.如果DPR文件中包含该{$R *.RES}
行,则项目资源文件将由编译器链接到您的应用程序.
资源管理器为EXE文件显示的图标是应用程序中的第一个图标.图标或按字母顺序排序.如果资源管理器显示错误的图标,则可能是您已将其他图标链接到应用程序,其中一个图标的名称在MAINICON之前.它可能有一个数字名称.(我不知道Windows Commander如何决定显示什么图标.)
如果项目使用的某个组件或其他单元具有与该$R
指令链接的资源文件,那么它将包含在您的项目中.您不必对图标进行任何特定引用,甚至在代码中的任何位置提及组件的类名.仅仅$R
在已使用的单元中存在指令就足以将整个资源文件链接在一起.编译器不会执行任何"智能链接"来删除未使用的资源,因为它无法在编译时检测资源使用情况.
常见的问题是资源管理器显示错误的图标,但程序本身使用正确的图标.通过在MAINICON之后重命名"错误"图标来解决这个问题.但是你说你的程序表现相反:资源管理器(桌面)显示正确的图标,你的程序使用错误的图标,对吧?
一种可能性是DPR文件中的$R
指令丢失或错误.Delphi可能正在链接旧版本的文件.尝试删除项目的RES文件.当IDE看到它丢失时,它将重新创建它.此时,重新配置项目选项中的图标.您可能还需要重置项目的版本号.
您还应该检查已编译程序中资源的布局.我不记得Delphi是否附带了适合该任务的资源查看器.您可以尝试PE资源浏览器.需要考虑的事项:项目中所有图标的名称是什么?出现什么图标,名称为MAINICON?其他图标来自哪个RES文件,以及它链接到哪个单元?
最后,关于术语的说明:VCL是Visual Component Library,Delphi附带的一组组件.你不能拥有"一个"VCL.你安装到Tool Palette(nee Component Palette)并放在表单和数据模块上的东西是组件,而不是VCL.
从Delphi的菜单栏中选择Project-> Options
在项目选项中,选择应用程序
在那里,您将看到为您的应用选择的图标.
你可以在那里改变它.