PDA

Ver la Versión Completa : Cambiar Icono de un Form en tiempo de ejecución


gluglu
08-02-2007, 23:06:11
Hola compañeros !

Como puedo cambiar el icono de un Form en tiempo de ejecución, cargando para ello un icono que esté almacenado en un TImageList ?

He probado con
var
Aux_Icon : TIcon;
...

MainForm.ImageList1.GetIcon(0,Aux_Icon);
MainForm.Icon := Aux_Icon;
pero en vez de cogerme la imagen con el índice 0 que está en el ImageList1, me coge el icono asignado al ejecutable :confused: .

Gracias

gluglu
09-02-2007, 00:19:11
Ya lo conseguí ...

Me faltaba crear el TIcon.

var
Aux_Icon : TIcon;
...

Aux_Icon := TIcon.Create;
MainForm.ImageList1.GetIcon(0,Aux_Icon);
MainForm.Icon := Aux_Icon;
...
Aux_Icon.Free;

gluglu
09-02-2007, 01:03:27
También funciona sin la ayuda de TIcon ...
MainForm.ImageList1.GetIcon(0, TForm(MainForm).Icon);


lo que sí que me pasa es que entiendo que los iconos que se muestran son de 16x16 bits, y no sé si 256 colores o color de 32 bits. En cualquier caso, al reemplazar el icono del Form con el método arriba indicado, la imagen del icono en el form se 'distorsiona' y bien aparece con líneas en blanco, o no se vé con la misma calidad que si lo asigno directamente en el propiedad 'Icon' del 'Object Inspector'.

Desconozco el por qué.