[Lazarus-es] Cambiar icono antes de compilar apliación

Antonio Evora aevorar en gmail.com
Lun Jun 20 08:35:52 CEST 2016


Eso es Jesús!!!! Como comentas los recursos no forman parte de los modos 
de compilación, que por cierto son de lo mejor para personalizar 
aplicaciones para distintos clientes con 0 esfuerzo. Esta tarde lo 
pruebo y os cuento.

Como anécdota comentar que el post al que hace referencia Pancho del 
club Delphi es mio ;-)

Un cordial saludo.

El 19/06/16 a las 07:41, Jesus Reyes A. escribió:
> En Sat, 18 Jun 2016 20:10:56 -0500, Maximiliano Duarte 
> <maximiliano.duarte en gmail.com> escribió:
>
>> Lo que quiere es cambiar el icono en tiempo de ejecución.
>> No creo se pueda. Me parece que es parte de la aplicación y no puede 
>> ser modificado-----
>> De: francisco prieto
>> Enviado el: ‎18/‎06/‎2016 11:58
>> Para: Spanish version of Lazarus List
>> Asunto: Re: [Lazarus-es] Cambiar icono antes de compilar apliación
>>
>> Antonio,
>>
>> Se me ocurre que para lo tuyo podes intentar algo asi...
>>
>> http://www.clubdelphi.com/foros/showthread.php?t=47395
>>
>> Ojo, el Lazarus tiene un bug y para que te tome correctamente el 
>> archivo de recursos tenes que:
>> 1-Ejecutar
>> 2-Limpiar y Construir
>> 3- Dejar tildada solo las opciones Directorio de Salida de Proyecto y 
>> Directorio de Fuentes del >Proyecto
>> 4- Limpiar y Construir
>>
>> Cada vez que hagas un cambio en los puntos res, tendras que Limpiar y 
>> Construir porque sino te va a >tomar el archivo res anterior.
>>
>> Pero salvo por eso el archivo de recursos se puede usar sin problemas.
>>
>> Saludos,
>>
>> Pancho
>> Cordoba
>> Argentina El sáb., 18 jun. 2016 a las 10:51, Antonio Évora Ramírez 
>> (<aevorar en gmail.com>) escribió:
>>>
>>> Buenas Maikel.
>>>
>>> Como tu comentas es como se hace. Pero lo que yo necesito es que si 
>>> el modo de compilación es A >>ponga un icono y si el modo de 
>>> compilación es B ponga otro icono distinto. Ya lo tengo orquestado 
>>> >>para el fondo de la aplicación que cambia en función del modo de 
>>> compilación pero con el icono no >>hay manera (o al menos yo no se 
>>> como). La solución sería que al compilar usará el icono de la 
>>> >>aplicación y no el que se cargó al cargar el proyecto.
>>>
>>> Espero haberme explicado mejor ;-)
>>>
>>>
>
> Interesante. Como Antonio ha descubierto los modos de compilación no 
> incluyen el apartado de "Recursos" por lo que actualmente esto no es 
> posible. Me dí a la tarea de investigarlo y he dado con un método que 
> al parecer funciona, intenta los siguientes pasos:
>
> 1. Eliminar el icono de la aplicación. Mediante el Menú 
> Proyecto->Opciones del proyecto en el apartado "Aplicación" presiona 
> el botón "Quitar Icono", Presiona el botón "Aceptar" para guardar los 
> cambios.
>
> 2. Preparar Archivo de proyecto para el nuevo recurso. Mediante el 
> Menú Proyecto->Ver Fuente Proyecto editar el código del archivo .lpr, 
> donde tenemos
>
> {$R *.res}
>
> Editarlo para que quede así (el nombre AppIcon.res es gusto personal):
>
> {$R AppIcon.res}
> {$R *.res}
>
> Guardar los cambios.
>
> 3. Modificar los modos de construcción.
>   (a) Mediante el Menú Proyecto->Opciones del proyecto seleccionar el 
> apartado: "Comandos del compilador", en el panel derecho.
>   (b) Selecciona el modo de compilación de la lista en la parte 
> superior del panel derecho.
>   (c) En apartado "Ejecutar antes de" hacer lo siguiente:
>     * Desmarcar "Ejecutar", Marcar "Compilar" y "Construir"
>     * En "Comando" escribir: x:\ruta\a\windres.exe -i 
> x:\ruta\a\AppIconModoA.rc -o AppIcon.res
>   (d) Repetir desde (b) para cada modo de compilación existente.
>   (e) Presiona el botón "Aceptar" para guardar los cambios.
>
> y con esto cada vez que compiles, el ejecutable deberá tener el icono 
> que hayas seleccionado, que icono se usa para cada modo de compilación 
> será determinado por los archivos AppIconModoX.rc que deberás crear 
> para cada modo. windres.exe lo encuentras en el directorio "bin" de tu 
> instalación de FPC, entonces ajusta la ruta de manera que Lazarus lo 
> encuentre.
>
> En mi caso, he creado un directorio "res" dentro del directorio del 
> proyecto donde pongo los archivos .ico y .rc, entonces suponiendo que 
> he instalado fpc en c:\Users\Jesus\dev\fpc\3.0.0 la línea de comando 
> sería:
>
>     c:\Users\Jesus\dev\fpc\3.0.0\bin\windres.exe -i 
> res\AppIconModoA.rc -o AppIcon.res
>
> AppIcon.res debe coincidir con lo especificado en el paso 2.
> entonces, solo resta la construcción de cada archivo .rc, es sumamente 
> fácil, el contenido es una sola línea de texto, algo así como:
>
> AppIcon ICON "ModoA.ico"
>
> La primer palabra: AppIcon es lo que recomienda FPC 
> (http://www.freepascal.org/docs-html/prog/progse63.html#x275-29000013.5), 
> pero podría ser un número (ver 
> https://msdn.microsoft.com/library/windows/desktop/aa381018), por 
> ejemplo:
>
> 0 ICON "ModoA.ico"
>
> La segunda palabra: ICON es requerida para un recurso del tipo icono.
>
> y por último, viene el nombre del archivo que contiene el icono, si 
> colocas los archivos .ico, junto a los archivos .rc, no deberían haber 
> problemas. No he intentado con otras rutas.
>
> Al parecer el icono de la aplicación será el primero recurso ICON que 
> se encuentre (esto último es mas bien una corazonada, no he 
> investigado) pero por eso he puesto primero {$R AppIcon.res} que {$R 
> *.res}, esperando que sirva en el caso de que la aplicación haga uso 
> de mas iconos.
>
> Aunque esto funciona, en mi caso y como anécdota personal, me ha 
> costado un pequeño dolor de cabeza porque a pesar de que acá todo se 
> hacía correctamente, la aplicación seguía siendo generada con el icono 
> predeterminado. Y es que no se si tenga algo que ver la instalación de 
> Turtoise svn y git que se meten con la apariencia de los iconos para 
> mostrar el estado de cada archivo y guardarán un cache o que se yo (lo 
> más fácil es echarle la culpa a Windows 10, por que no :)), pero 
> después usando un editor de recursos me di cuenta de que el icono esta 
> siendo incorporado correctamente cada vez, o sí, en efecto algo pasé 
> por alto....
>
> Claro que no es la única solución, seguramente se podrá encontrar en 
> Internet alguna aplicación que cambie el icono del ejecutable una vez 
> que se haya generado, para eso se tendría que usar el apartado: 
> "Ejecutar después de" marcando también "Compilar" y "Construir". Esta 
> alternativa no la he probado, pero debería funcionar :)
>
> Bueno, espero que funcione bien para ti, si lo deseas prueba y comenta...
>
> Saludos.
>
> Jesus Reyes A.
>
>
>
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus-ide.org
> http://lists.lazarus-ide.org/listinfo/lazarus-es



More information about the Lazarus-es mailing list