为Delphi控制台应用程序更改图标

11

如何为Delphi控制台应用程序更改程序图标?

在控制台应用程序中,应用程序设置是灰色的。

再见。

5个回答

16
根据2007年7月Nibu Thomas的一篇博客文章,似乎有一个名为SetConsoleIcon的WinAPI函数。
或者将图标放在资源文件中。Windows应该使用应用程序资源中遇到的第一个图标作为应用程序图标。

13

如果更改图标的选项已禁用,则是因为您从DPR文件中删除或忽略添加以下行:

{$R *.res}

将其放回,如果你从未拥有过它,则添加它。图标设置将重新启用,版本信息设置也将重新启用。如果资源文件不存在,则IDE将为您创建它。不要编辑该资源文件(例如添加自己的图标或其他资源);它仅供IDE使用。


2
在这里添加 {$R *.res} 不起作用 - 在 Delphi 7 和 2009 中进行了测试。但是在 Delphi 2009 中,可以使用“项目 | 资源”添加图标,然后项目文件将有一行 {$R *.dres}。 - mjn
Dres?伙计,我已经落伍了。但是在Delphi 7中也无法运行?这让我感到惊讶。:/ 你确定你把它放在文件的正确位置了吗? - Rob Kennedy
对我有用,我将代码添加到我的dpr中,并像在表单应用程序中一样设置了图标。 - Pacharrin

10

如果你添加

application.Run; 

在您的dpr文件中的某个地方,您可以使用project->options更改图标。 更改图标后,再次删除"application.Run;",然后您就可以使用新图标进行编译/构建。


1
不起作用,伙计,因为控制台应用程序没有Application对象。 - CyprUS
3
在Delphi/BDS 2007中,这个方法适用于我。如果缺少application.run,请在dpr文件中添加它(即使这样可能会破坏构建的过程)。更改您的图标/设置,然后将其注释掉,直到您需要再次进行更改。最好在第一次添加时附加一个注释说明原因。 - Mike Taylor
这是我在Delphi 7中唯一有效的方法(不要问为什么我们还在使用Delphi 7,但它对于控制台应用程序来说非常简洁、高效和干净)。 - Reversed Engineer
1
#CyprUS,你说得对,在控制台应用程序中没有Application objection,但这不是为了构建应用程序!它只是为了愚弄IDE,使其启用Project > Options > Application > Application Settings。实际上,在我的代码中,它甚至不在begin...end块内,但它仍然可以愚弄IDE以启用该选项。一旦你添加了图标,并且IDE已将其保存到你的AppName.res文件中,你就可以注释掉那行代码,保持冷静,然后开始构建 :) - Reversed Engineer

8

只需更改您应用程序的资源文件中的图标(例如,如果您的应用程序项目称为ConsoleApp.dpr,则应用程序资源文件将是ConsoleApp.res)

其中的主要图标资源直观地称为MAINICON,请进行替换。

这里有一个C++ Builder的逐步指南(在Delphi中步骤基本相同)。


3
  1. 在您的DPR文件中添加{$R *.res}。
  2. 注释掉您DPR文件中的{$APPTYPE CONSOLE}行。
  3. 编辑项目->选项->应用程序->图标。
  4. 取消注释您DPR文件中的{$APPTYPE CONSOLE}行。

已使用Delphi XE测试


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