Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Delphi7中设置EXE图标_Delphi_Icons_Delphi 7 - Fatal编程技术网

在Delphi7中设置EXE图标

在Delphi7中设置EXE图标,delphi,icons,delphi-7,Delphi,Icons,Delphi 7,我正在尝试为我的Delphi应用程序自定义在Windows资源管理器和桌面快捷方式中显示的图标 在Delphi7IDE中,我已在“项目选项”对话框的“应用程序”选项卡中加载了所需的图标。它以图形的形式显示我想要的图标 我不认为这是必要的,但我也将我的图标设置为TMAInformicon属性 但是,生成的EXE仍然显示默认的D7图标。我缺少什么?可能需要删除图标缓存。关于这个问题有很多页面,这个链接可能很有用:我在多次搜索后发现了它。通过从另一个文件夹复制现有项目,我创建了一个新项目。我忘了更改D

我正在尝试为我的Delphi应用程序自定义在Windows资源管理器和桌面快捷方式中显示的图标

在Delphi7IDE中,我已在“项目选项”对话框的“应用程序”选项卡中加载了所需的图标。它以图形的形式显示我想要的图标


我不认为这是必要的,但我也将我的图标设置为TMAInformicon属性


但是,生成的EXE仍然显示默认的D7图标。我缺少什么?

可能需要删除图标缓存。关于这个问题有很多页面,这个链接可能很有用:

我在多次搜索后发现了它。通过从另一个文件夹复制现有项目,我创建了一个新项目。我忘了更改DPR文件顶部的程序名以匹配新项目的名称。不知何故,如果使用了错误的名称,则会阻止在生成的EXE文件中更改图标…

当您将图标分配给应用程序时,图标将嵌入名为与程序名相同的.res文件中(在.dpr文件的第一行中提到的名称)。当您更改.dpr文件中的程序名时,delphi将使用新程序名创建一个新的.res文件,并在新res文件中查找图标资源,但没有找到,因此使用默认图标(或矩形白色框)。携带图标资源的旧res文件将不再使用。
总之,如果更改程序名,则必须重新分配图标。

“仍显示默认的D7图标”在哪里?@Nick:如问题所述,在Windows资源管理器和桌面快捷方式中?“我不认为这是必要的,但我还将我的图标设置为TMainForm icon属性。”-这不再是要做的事情。删除特定于表单的图标,否则会导致Vista或其他方面出现问题(记不起详细信息,但我忘记了)。应用程序的图标作为名为MAINICON的图标资源存储在.res文件中。@Stijn:不,他不应该。这个答案将来可能对其他人有用。回答您自己的问题包含在SO FAQ中-也许您应该阅读。@tim11g:您是否可以编辑您的答案,以便更明确地说明您了解到的问题以及如何解决问题(无需创建新项目)?事实上,这个答案并不明确+1至Ken-需要保留问题和清晰的答案。@Argalatyr:我不确定它究竟如何或为什么影响设置图标的能力,但问题是.DPR文件中的程序名。由于我从一个类似的项目中复制了这个项目,所以旧的项目名称位于DPR的顶部。项目文件名已更改为NewProject.DPR,但在NewProject.DPR中,第一行是“program OldProject;”。这种不一致似乎打破了某些东西。修复它就像打开DPR文件并将“ProgramOldProject;”行更改为“ProgramNewProject;”一样简单