Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Icono en modo consola (https://www.clubdelphi.com/foros/showthread.php?t=59967)

MAXIUM 16-09-2008 02:01:30

Icono en modo consola
 
¿Como puedo colocar un icono a mi exe por código?

EL asunto es que hice una pequeñisima aplicación en modo consola pero queda muy feo el exe y quisiera colocarle un icono. Eso, gracias.

dec 16-09-2008 02:21:11

1 Archivos Adjunto(s)
Hola,

Mediante un archivo de recursos puedes hacerlo. Tal como se hace en una aplicación "de ventanas". Es decir, en el archivo "DPR" puedes añadir algo como esto:

Código Delphi [-]
{$R *.res}

O ser un poco más específico:

Código Delphi [-]
{$R Application.res}

Lo que no me queda claro es cómo se ha de situar el icono en el archivo de recursos. Creo que se incluye como "MAIN ICON", personalmente usaría el archivo "res" de otra aplicación "de ventanas" y le cambiaría el icono usando un programa como XN Resource Editor. En cualquier caso te adjunto un archivo de este tipo que, precisamente, uso en una aplicación de consola, tal como te he comentado. ;)

cHackAll 16-09-2008 02:26:20

En caso de que quieras cambiarle el icono al ejecutable;

1. Crea un archivo .rc con la siguiente linea;
mainicon icon "ClubDelphi.ico"

2. Compilalo con la siguiente linea de comandos
brcc32 archivo.rc

3. Agrega la siguiente linea a tu programa;
{$r archivo.res}


En caso de que lo quieras "hacer por código";

Código Delphi [-]
program Project1; {$apptype console}
 
uses Windows, Messages, SysUtils;
 
function GetConsoleWindow: Cardinal; stdcall external 'kernel32';
 
begin
 SendMessage(GetConsoleWindow, WM_SETICON, 1, LoadImage(0, 'ClubDelphi.ico', IMAGE_ICON, 0, 0, LR_LOADFROMFILE));
 
// etc.. etc..
 
end.

Saludos

dec 16-09-2008 02:28:30

Hola,

Sí, señor, eso es una respuesta cHackAll. Te felicito. ;)

MAXIUM 16-09-2008 03:31:05

Muchas gracias a ambos. Cuando escriba mis memorias, los nombrare mis mentores :)


La franja horaria es GMT +2. Ahora son las 07:32:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi