PDA

Ver la Versión Completa : ¿Cómo cargar un Glyph para un botón en tiempo de ejecución?


Feñiz
09-12-2003, 03:28:04
Mi problema es cómo cargar el Glyph para un TBitBtn en tiempo de ejecución.

Sí, ya sé que es lo más sencillo del mundo : Boton.Glyph.LoadFromFile('Nombre_imagen.bmp')

Pero el problema viene cuando el nombre de la imagen la puede especificar el usuario, y no sabemos si va a ser un BMP, un JPG o un ICO. El editor, en tiempo de diseño, permite cargar cualquiera de estos formatos en el Glyph sin problemas, pero cuando estamos en ejecución.... ¿cómo puedo saber el tipo de archivo que es y cargarlo en la propiedad de mi botón?

Ruben_Cu
09-12-2003, 04:21:37
Hola Feñiz, a ver si entiendo; quieres que el usuario pueda cargar una imagen en un TBitBtn y que se limite a las que el botón es capaz de aceptar, la primera duda es que tengo delphi 6 y ese control solo admite ficheros bmp, no se si tienes delphi 7 y esa versión si lo admite.
En cualquier caso debes usar un OpenPictureDialog y en su propiedad filter utilizar solo las extensiones capaces de ser cargadas, de esta forma al producir un evento el usuario puede seleccionar el fichero de imagen que desea, viendo la extensión que esta cargando, después de configurar adecuadamente la propiedad filter le pasas este código:
if OpenPictureDialog1.Execute then
BitBtn1.Glyph.LoadFromFile(OpenPictureDialog1.FileName);
Espero que por ahí ande lo que quieres.
Saludos y suerte

Feñiz
09-12-2003, 13:38:53
Ante todo, muchas gracias por responder Ruben.

Pero lo que comentas no es lo que necesito. Lo explico mejor:

El nombre del archivo que se va a cargar como Glyph se puede especificar en un archivo INI, que se carga al iniciar el programa. En Delphi 7, los Glyph deben ser bitmaps, como en las versiones anteriores. Sin embargo, usando el explorador en tiempo de diseño, sí que se pueden asignar otro tipo de formatos gráficos al Glyph del botón (ICO, JPG, etc).

Lo que yo quisiera es saber cómo puedo diferenciar el tipo de imagen que se ha especificado en el archivo INI (si es un BMP, ICO o JPG), y cómo puedo convertirlo luego a BMP para asignarlo al Glyph del botón.

Ahora mismo lo estoy intentado con un componente TImage, que en teoría admitiría cualquiera de estos formatos, pero no sé luego como convertirlo para que me lo admita el Glyph. Lo que intento hacer es algo como esto:

var Imagen: TImage;

begin
Imagen:=TImage.Create;
Imagen.LoadFromFile(Nombre_archivo);
end;

Ahora lo que necesitaría saber es cómo identificar el tipo de imagen que ha cargado el TImage, y cómo convertirlo a bitmap para poder asignarselo al Glyph.