Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cambiar la imagen a un SpeedButton (https://www.clubdelphi.com/foros/showthread.php?t=53467)

pennylane 21-02-2008 12:11:19

Cambiar la imagen a un SpeedButton
 
Hola:

Tengo una aplicacioncilla en la que he puesto botones speedbutton transparentes y con una imagen dentro. Al no ver los bordes del icono, no hay ninguna diferencia del estado normal del boton a cuando se pulsa. Había pensado como solución cambiar la imagen en el evento OnMouseDown por la misma pero algo mas pequeña y restaurar la imagen original en OnMouseUp para lograr crear el efecto de pulsar.

Código Delphi [-]
bConsulta.Glyph.LoadFromFile('Imagenes\consultap.bmp');


Esto no acaba de funcionar. Parece que es como si no refrescase la pantalla, pero he probado a ponerle el Refresh y nada.

¿ Alguna idea de como lo puedo solucionar ?

dec 21-02-2008 12:18:43

Hola,

Deberías consultar la ayuda sobre la propiedad "Glyph", ya que esta admite una imagen BMP que en realidad contenga hasta cuatro trozos de un mismo tamaño que serán los utilizados en determinados "estados del botón" sin que tengas que codificar nada en absoluto. Conque busques en la ayuda sobre dicha propiedad y en "google" por "Glyph" verás que encontrarás imágenes que podrán servirte de ejemplo.

alex_p8 28-02-2008 12:18:12

Buenas,
creo que tienes que ayudarte de la función LoadBitmap():
bConsulta.Glyph := LoadBitmap(...);

o algo así creo recordar.

ixMike 28-02-2008 14:00:42

LoadBitmap devuelve un Handle, se haría así:

Código Delphi [-]
bConsulta.Glyph.Handle:=LoadBitmap(HInstance, 'C:\Imagenes\consulta.bmp');

Creo que lo que le falla a pennylane al principio es que no escribía la ruta completa del archivo.

De todas formas, la opción que da dec es la más acertada (a mi parecer).


Salu2.

pennylane 28-02-2008 20:00:45

Si... Hice caso a Dec... ya se arreglo el problema... Muchas gracias a todos por las respuestas.


La franja horaria es GMT +2. Ahora son las 15:17:40.

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