当前位置:  开发笔记 > 开发工具 > 正文

我的应用程序图标已损坏(编译器中出现问题?)

如何解决《我的应用程序图标已损坏(编译器中出现问题?)》经验,为你挑选了2个好方法。

我的应用程序的"应用程序图标"是错误的.

我的应用程序在任务栏中显示的图标与经典的Delphi图标不同.而是显示我的一个VCL的图标.图标被"窃取"的特定VCL未在我的应用程序中使用,但使用了同一包中的其他VCL.

相关信息: - 如果我将我的应用程序拖放到桌面上,图标看起来没问题. - 当我将光标放在Windows Commander上时,图标看起来没问题. - 当我将其拖放到"按钮栏"中时,Windows Commander中的图标看起来不正常.结论:图标在运行时不会被意外更改(即使应用程序未运行,问题也存在).

我使用Delphi 7.我只是为了确保禁用EurekaLog和FastMM,并重建应用程序.问题仍然存在.我甚至没有丝毫为什么编译器插入错误的图标.我真的需要一些提示.谢谢.



1> Rob Kennedy..:

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.



2> ChuckO..:

Delphi的菜单栏中选择Project-> Options

在项目选项中,选择应用程序

在那里,您将看到为您的应用选择的图标.

你可以在那里改变它.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有