加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用Delphi 2006有条件地更改应用程序图标

发布时间:2020-12-15 09:52:23 所属栏目:大数据 来源:网络整理
导读:我想生成我的应用程序的两个不同版本,具有基于DEFINE的不同图标. 我成功地根据定义包含了不同的资源文件,但我无法摆脱我项目的默认.res文件中的MAINICON. 我添加了一个资源Version1.rc文件,其中包含以下行: MAINICON icon "resourceiconsVersion1.ico" 但
我想生成我的应用程序的两个不同版本,具有基于DEFINE的不同图标.
我成功地根据定义包含了不同的资源文件,但我无法摆脱我项目的默认.res文件中的MAINICON.

我添加了一个资源Version1.rc文件,其中包含以下行:

MAINICON icon "resourceiconsVersion1.ico"

但是,如果我尝试使用IDE编译MyProject,我总是会收到以下错误:

E2161 Duplicate resource: Type 14 (ICON GROUP),ID MAINICON; File
C:MyProjectVersion1.RES resource kept; file
C:MyProjectMyProject.RES resource discarded.

我尝试使用资源编辑器编辑MyProject.res并删除MAINICON,但delphi自动似乎重新创建包含图标的文件.

解决方法

由于David Heffernan的评论,我找到了解决方案.我最终得到了以下内容:

>在IDE中,我删除了项目选项下的“包含版本信息”,并删除了项目文件中的{$R * .res}.
>我删除了文件MyProject.res
>我添加了一个文件versioninfo.rc,其中包含我以前在IDE中提供的信息,如here所述.
>我添加了文件icon_version1.rc和icon_version2.rc,如下所示:

LANGUAGE LANG_NEUTRAL,SUBLANG_NEUTRAL
MAINICON icon "..resourcesiconsversion1.ico"

>我在我的项目中添加了一个Resources.pas文件,如下所示:

unit Resources;

interface

implementation

{$IFDEF VERSION1}
    {$R ICON_VERSION1.RES} //from ICON_VERSION1.RC
{$ELSE}
    {$R ICON_VERSION2.RES} //from ICON_VERSION2.RC
{$ENDIF}

{$R VERSIONINFO.RES}  //from VERSIONINFO.RC

end.

>我修改了现有脚本compile_resources.bat以编译其他资源文件.

现在如果我定义VERSION1,我的应用程序有icon_version1.ico图标,否则icon_version2.ico.一个警告:如果修改了版本信息(或图标),我必须运行compile_resources.bat来反映更改.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读