PDA

Ver la Versión Completa : Botón con Imagen y color.


kukinn
12-01-2005, 13:19:21
Hola, aunque parezca mentira no consigo la forma de poner un botón de un determinado color y que contenga una imagen.

He encontrado en http://www.latiumsoftware.com/en/delphi/00043.php un TButton con color, pero claro no puedo insertar imagen. Alguién sabe como puedo insertar color en un TBitBtn.

Muchas Gracias.

Hugo
12-01-2005, 13:33:11
Si no tienes mas remedio, lo puedes simular con un TPanel, insertandole la imagen que quieras y éste si que tiene color.

Saludos.

Coco
12-01-2005, 14:11:59
Debes poner un panel, sin bordes, del color que quieras. Luego pega dentro del panel un TSpeedButton con alineacion taClient, y asignale la propiedad Flat a True.
De esta forma te quedara un boton con color, texto e imagen. Aunque con la propiedad flat. Esperemos que te sirva. Saludos

kukinn
12-01-2005, 14:27:12
Casi me vale esto último.... pero sigo teniendo un problema: Los SpeedButton no tienen foco, y aunque le ponga el taborder del panel = true, cuando se para en el panel en realidad no nos damos cuenta que el foco está ahí, ya que está debajo del speedButton.

entonces....

Coco
12-01-2005, 14:43:19
Entonces....
toma un panel, y en el evento OnMouseDown le sacas los bordes y en el OnMouseUp se los asignas de nuevo. Asi te quedará algo parecido a un boton, con el comportamiento "parecido" a un boton. Eso si, en el evento click asigna la funcionalidad que le debes dar al boton.

Saludos.

kukinn
12-01-2005, 15:07:18
Si, eso lo había pensado y la verdad es que queda bien, pero claro, imagínate trabajar así con muchos botones... es un tostón.....estaba pensando en hacer un template o algo por el estilo, pero tengo el problema que tampoco es cómodo para cambiar el tamaño del botón... ya que cuando se selecciona lo haces del speedButton y éste no puede sobrepasar al padre (que sería el panel)

Coco
12-01-2005, 15:14:44
La ultima opcion que habia dado, era "sin" utilizar un speedButton, toda la funcionalidad la tiene el propio panel.

Ahora, si me dices que necesitas utilizar en varias oportunidades el mismo tipo de boton, lo que puedes hacer es un nuevo componente, que herede de un panel, y le asignas las propiedades que te explique y listo.

Saludos.

maeyanes
12-01-2005, 16:07:30
O puedes buscar en www.torry.net

Ahí seguro encuentras botones con el comportamiento que quieres...



Saludos...

quetzal
12-01-2005, 16:32:55
tan facil como crear el componente y copiar el codigo que ponen en la pagina que das

http://www.latiumsoftware.com/en/delphi/00043.php

y ya que guardas el el componente, nada mas es necesario instalar el componente el cual se instala en la pestaña de samples

:cool:

rafita
13-01-2005, 10:14:28
No soy amigo de instalar componentes externos (y mi empresa no quiere gastar dinero), pero en ocasiones hace falta.

Aquí tienes un conjunto de componentes (gratuitos) que probé y me gustaron:
lbButtons Suite --> con un lbStaticText, lbButton y lsSpeedButton

http://www.casadelphi.com/index.php?mod=c_botones

Hasta luego.

Casper1
13-01-2005, 14:32:30
Bueno kukin, parece que no quieres pasar mucho trabajo, pero yo lo he hecho de esta forma también:

1.- He editado imágenes en editores y he hecho los estados de los botones.
2.- Inserto un TImage y le pongo la imagen del estado normal.
3.- Inserto otros TImage ocultos con los otros estados.
4.- Cuando paso el puntero del Mouse entonces le asigno que tome como estado la imagen "X".
5.- Cuando hagla click que tome como estado la imagen "Y" y que ejecute entonces lo que yo quiero.

Dime si no es más engorroso esta forma, claro yo lo hago así porque se ve más binoto y con más estética y la aplicación que estoy haciendo sea para uso de otras personas que no sea yo porque cuando es para mi lo hago como quiera porque no lo va a utilizar más nadie. Ok?