Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Botón con Imagen y color. (https://www.clubdelphi.com/foros/showthread.php?t=17526)

kukinn 12-01-2005 13:19:21

Botón con Imagen y color.
 
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

Boton con imagen y color
 
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?


La franja horaria es GMT +2. Ahora son las 08:08:00.

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