Cita:La incognita es ¿Donde copia esos archivos el instalador de gambas?
Bueno, tengo mi teoría: los 273 que aparecen con icono en la clase Picture, que corresponden con los del set de la derecha que puse antes, los saca del stock/Icons/32 los demás del Stock/Icons/gambas-mono. Luego el tema de Escritorio QT o GTK elegido, "Sobreescribe" aquellos coincidentes en, supongo, nombre.
Para mi problema, es suficiente base para trabajar.
Esto me lleva a la siguiente pregunta:
¿Cómo averiguar vía código qué icono lleva un control (un button, por ejemplo)?
Normalmente las propiedades Picture de los controles son del tipo Picture. En el fichero .Form que los contenga aparecen como una cadena de texto tipo "icon:32/directory" pero esa cadena no está disponible en tiempo de ejecución (si se ejecuta desde el IDE sí, pero eso no es válido con el ejecutable compilado). Por tanto en tiempo de ejecución tengo un control que dispone de una propiedad Picture que contiene un objeto de clase Picture, que no tiene nombre ni nada parecido asociado a ella. ¿Cómo saber qué icono es el asociado?
Soluciones que se me ocurren
A) Para cualquier tipo de control que use Picture:
-Nombra al control total o parcialmente igual que el icono. Así un botón que se llame "add", tendrá asociado el "icon:32/add" o el fichero .png que se llame add.png esté donde esté. Si tienes más de un control con el mismo icono en el mismo formulario, hazlo parcialmente así uno llamado "_add",otro "BtnStock_add" y otro llamado "BtnAddPicture_add" podrían compartir el icono de añadir.
Algo así he estado utilizando hasta ahora, pero como me parece un poco chapuza he intentado varias cosas entre las que destacan:
B) Cuando creas controles propios:
- Cambiar el tipo de la propiedad Picture a un String que contenga el path al fichero .png o el nombre de un icono del Stock y que sea tu propio control se encargue luego de buscar y cargar el icono. (El problema con la primera solución es que en tiempo de diseño no dispones de esa pantallita para elegir el icono del stock y tendrías que asignar el nombre del icono de memoria.)
- Añadir una propiedad tipo String (algo así como la propiedad tag) donde almacenar el nombre del archivo.png o del icono del Stock y rellenarla de manera simultánea a la hora de asignar el Icono. (El problema con la esta es que la veo engorrosa y un poco chapuza)
A falta de algo mejor, creo que aplicando la navaja de Occam, me decantaré por la A, aunque no me guste demasiado.
Se admiten (aceptan/necesitan/agradecen/piden/suplican) ideas, sugerencias y soluciones.
Saludos