views:

967

answers:

4

Hi, How do I change the program icon for a Delphi console application?

The application settings is greyed in a console application.

Bye.

+8  A: 

According to a July 2007 blog article by Nibu Thomas, there seems to be a SetConsoleIcon WinAPI function.

Alternatively just put the icon in a resource file. Windows should use the first icon it encounters in the application's resources as the application icon.

Smasher
The resource file works fine, thanks.
RRUZ
+5  A: 

Simply change the Icon in your apps resource file (say your app project is called ConsoleApp.dpr, your app resource file will be ConsoleApp.res)

The main icon resource in there is intuatively called MAINICON, just replace it.

Here is a step by step for C++ Builder (the steps are basically the same in Delphi)

Tim Jarvis
+6  A: 

If the option to change the icon is disabled, then it is because you have deleted or neglected to add the following line from your DPR file:

{$R *.res}

Put it back, or add it if you never had it. The icon setting will be re-enabled, as will the version-information settings. If the resource file does not exist, then the IDE will create it for you. Do not edit that resource file (such as to add your own icons or other resources); it is for the IDE's use only.

Rob Kennedy
adding {$R *.res} does not work here - tested in Delphi 7 and 2009. In Delphi 2009 however the icon can be added using Project | Resources, the project file will then have a line {$R *.dres}
mjustin
Dres? Man, I'm out of touch. But it doesn't work in Delphi 7, either? That surprises me. :/ You're sure you put it in the right place in the file?
Rob Kennedy
A: 

if you add

application.Run; 

somewhere in your dpr file you can use the project->options to change the icon. After you have changed the icon just remove "application.Run;" again and you can compile/build with new icon.

Ulrik