Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-11-2011
lucas05 lucas05 is offline
Miembro
 
Registrado: ago 2010
Posts: 116
Poder: 14
lucas05 Va por buen camino
Cambiar de color un button

Hola, estoy usando Delphi 7. Tengo un menú con varios buttons y a medida que presiono la tecla Tab me voy desplazando entre ellos.
Quería saber como hacer para cuando me vaya moviendo ente los buttons estos cambien de color o agregarle algún efecto.
Es para que el usuario del sistema pueda diferenciar mejor cual es botón que va seleccionando.

Saludos y muchas gracias.
Responder Con Cita
  #2  
Antiguo 23-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

No es posible cambiar el color a un TButton por que es windows quién gestiona su color, pero te pongo unos enlaces a posibles alternativas:
Otra opción, por ejemplo, podría ser:
Código Delphi [-]
...
type
  TButton=class(StdCtrls.TButton)
    procedure CMMouseEnter(var Msg: TMessage); message CM_MouseEnter;
    procedure CMMouseLeave(var Msg: TMessage); message CM_MouseLeave;
  end;
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ...
  private
  public
  end;
...
implementation

procedure TButton.CMMouseEnter(var Msg: TMessage);
begin
  SetFocus;
  Height:= Height + 3;
  Width:= Width + 3;
  Font.Style:= [fsBold];
  Font.Size:= Font.Size + 2;
end;

procedure TButton.CMMouseLeave(var Msg: TMessage);
begin
  Height:= Height - 3;
  Width:= Width - 3;
  Font.Style:= Font.Style-[fsBold];
  Font.Size:= Font.Size - 2;
end;
...
Que hará que el texto del botón incremente su tamaño y el del font, se ponga en negrita y obtenga el foco cuando el mouse pase sobre él, regresando a su estado anterior cuando salga.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-11-2011 a las 05:00:31. Razón: Ampliar ejemplo
Responder Con Cita
  #3  
Antiguo 23-11-2011
lucas05 lucas05 is offline
Miembro
 
Registrado: ago 2010
Posts: 116
Poder: 14
lucas05 Va por buen camino
Hola ecfisa, gracias por tu ayuda. Utilice el código que me recomendaste y funciona bien.
Una consulta, es posible cambiar el color del texto del botón.

Desde ya muchas gracias
Responder Con Cita
  #4  
Antiguo 23-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

No Lucas, lamentablemente entra en la misma bolsa que el color de fondo... Si intentas cambiarlo desde el Object Inspector -> Font -> Color, verás que lo ignora.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 23-11-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
De hecho, sí puede cambiarse el color de un botón, o, mejor dicho, puedes crear un componente derivado de TButton que tenga color, pero tienes que dibujarlo tú mismo. Es lo que hace Zarco Gajic en su componente TColorButton.

// Saludos
Responder Con Cita
  #6  
Antiguo 23-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Román.

Estoy totalmente de acuerdo con vos (el 2° enlace de mi primer mensaje es el de Zarko). Pero usando el código que le adjunté, no va a poder...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 23-11-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Ah! Disculpa, no había caido en la cuenta de ese enlace, pero me dejé llevar por tu afirmación de que no se puede... cuando sí se puede!!

// Saludos
Responder Con Cita
  #8  
Antiguo 23-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
No tenés por qué disculparte, seguramente no me expresé bién. Pero en realidad no quise decir que no se puede hacer un botón con color, sino que a un TButton no se le puede asignar color.
Y por supuesto que estoy totalmente de acuerdo que ya sea creando un componente derivado de él o uno nuevo es posible.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 24-11-2011
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
Poner un TPanel , luego poner un TSpeedButton dentro del Tpanel; Configurar la propiedad Autozise del TPanel a True (TPanel.Autozise := true), luego configurar la propiedad Flat del TSpeedButton a true (TSpeedButton.flat := true) y listo cuando le cambies el color al TPanel el TSpeedButton tendrá el mismo color que el TPanel. Para agregar buenos efectos al nuevo TButton puedes jugar con las Siguiente propiedades del TPanel BevelInner, BevelOuter, Bevelwidth, BorderWidth, BorderStyle; y recuerda que tienes todas las caracteristicas Visuales de un TPanel y el poder de un TSpeedButton
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Se puede cambiar de color un Button? aleja OOP 8 07-10-2015 01:29:28
cambiar color a un button zidfrid C++ Builder 1 22-04-2008 18:46:01
Mantener color verde olivo de las ventanas, al cambiar el color en windows mancurnino Varios 6 11-03-2008 15:39:47
Color en un Button normal brakaman Varios 1 12-08-2007 11:35:13
Cambio de color de fondo de un button Rako OOP 5 02-06-2007 22:29:45


La franja horaria es GMT +2. Ahora son las 09:50:38.


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
Copyright 1996-2007 Club Delphi