Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-05-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
Cambiar el color de fondo de un Edit o DBEdit

Saludos:
Con el siguiente codigo cambio el color de fondo de un DBEdit cada vez que ingreso (ENTER) a el o salgo (EXIT) del mismo

Código Delphi [-]
//Asignamos color al DBEdit
procedure TfrmClientes.DBEdit1Enter(Sender: TObject);
var ColorOrigen: TColor;
begin
  ColorOrigen := DBEdit1.Color ;
  DBEdit1.Color := clSkyBlue;
end;
 
//Restauramos el color del DBEdit;
procedure TfrmClientes.DBEdit1Exit(Sender: TObject);
var ColorOrigen: TColor;
begin
  DBEdit1.Color := ColorOrigen;
end;

No quiero repetir este codigo para 20 edits, ok Delphi me permite asignar el evento OnEnter y OnExit al DBEdit1 y despues se lo puedo asignar a los demas DBEdit pero esto no funciona porque (eso creo) hago referencia en especifico a un DBEdit en este caso DBEdit1.

si creo algo como esto:

Código Delphi [-]
procedure TfrmClientes.ColorEnter;
var
  Cnt: integer;
  ColorOrigen: TColor;
begin
  for Cnt := 0 to Pred(ComponentCount) do
  begin
    if Components[Cnt] is TDBEdit then
      begin
        ColorOrigen := TDBEdit(Components[Cnt]).Color;
        TDBEdit(Components[Cnt]).Color := clSkyBlue;
      end;
  end;
end;
 
procedure TfrmClientes.ColorExit;
var
  Cnt: integer;
  ColorOrigen: TColor;
begin
  for Cnt := 0 to Pred(ComponentCount) do
  begin
    if Components[Cnt] is TDBEdit then
      TDBEdit(Components[Cnt]).Color := ColorOrigen;
  end;
end;
 
procedure TfrmClientes.DBEdit1Enter(Sender: TObject);
begin
  ColorEnter;
end;
 
procedure TfrmClientes.DBEdit1Exit(Sender: TObject);
begin
  ColorExit;
end;

Entonces todos los DBEdit se colorean simultaneamente, en algo me perdi, se agradece la ayuda.
Responder Con Cita
  #2  
Antiguo 07-05-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
De nuevo aqui!
Bueno resolvi esto de la siguiente manera:

Código Delphi [-]
private
    { Private declarations }
    ColorOrigen: TColor;
    procedure ColorEnter(Sender: TObject);
    procedure ColorExit(Sender: TObject);
procedure TfrmClientes.ColorEnter(Sender: TObject);
begin
  ColorOrigen := TDBEdit(Sender).Color;
  TDBEdit(SEnder).Color := clSkyBlue;
end;
procedure TfrmClientes.ColorExit(Sender: TObject);
begin
  TDBEdit(Sender).Color := ColorOrigen;
end;
procedure TfrmClientes.DBEdit1Enter(Sender: TObject);
begin
  ColorEnter(Sender);
end;
procedure TfrmClientes.DBEdit1Exit(Sender: TObject);
begin
  ColorExit(Sender);
end;

Se aceptan todas las sugerencias
Responder Con Cita
  #3  
Antiguo 07-05-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Como ya descubriste las bondades del objeto Sender, el mismo evento OnEnter y OnExit manejan este objeto, por lo que no sería necesario crear las funciones ColorEnter y/o ColorExit.

Puedes usar el mismo código en el propio evento de tu primer control y asignarle ese mismo evento a todos los demás.
__________________

Responder Con Cita
  #4  
Antiguo 07-05-2007
Avatar de pborges36
pborges36 pborges36 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Argentina
Posts: 192
Poder: 20
pborges36 Va por buen camino
Hola. Tambien podrias usar este componente que pude realizar gracias a la ayuda de algunos integrantes del foro. Espero te sirva. Saludos.

Última edición por pborges36 fecha: 07-05-2007 a las 19:35:31.
Responder Con Cita
  #5  
Antiguo 08-05-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino

Contraveneno: creo que ya estaba harto cuando puse el codigo final, asi que hace un rato que volvi al computador vi tu mensaje y quedo esto:

Código Delphi [-]
//Asignamos color al dbedit
procedure TfrmClientes.DBEdit1Enter(Sender: TObject);
begin
  ColorOrigen := TDBEdit(Sender).Color;
  TDBEdit(SEnder).Color := clSkyBlue;
end;
 
//Restauramos color al dbedit
procedure TfrmClientes.DBEdit1Exit(Sender: TObject);
begin
  TDBEdit(Sender).Color := ColorOrigen;
end;

Espero haber entendido tu mensaje, si no me lo haces saber. Gracias!

pborges36 Gracias por el componente, la pregunta al final el codigo que pusiste ¿es el final..final o despues de tantas opiniones hubo otro cambio?
Responder Con Cita
  #6  
Antiguo 09-05-2007
Avatar de pborges36
pborges36 pborges36 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Argentina
Posts: 192
Poder: 20
pborges36 Va por buen camino
Es verdad que hubo varias opiniones, personalmente me quede con las modificaciones que hizo Crandel, la primera. Funciona de 10. Saludos.
Responder Con Cita
  #7  
Antiguo 15-05-2007
patoaballay patoaballay is offline
Miembro
 
Registrado: oct 2005
Posts: 11
Poder: 0
patoaballay Va por buen camino
como se puede cambiar el color de fondo de una fila seleccionda en una grilla de datos?? puedo cambiar el color del texto de la fila seleccionada, pero quisiera cambiar tambien el color de fondo de la misma fila.
Responder Con Cita
  #8  
Antiguo 15-05-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
http://www.clubdelphi.com/foros/show...r+color+grilla
__________________

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Cambiar color de fondo en un DBgrid Alexis De la Cr Conexión con bases de datos 5 02-06-2006 23:25:59
RAVE ¿Como cambiar color de fondo segun resultado del query? ach_666 Impresión 0 03-05-2006 01:33:28
texto como fondo en un DBEdit Oni Gráficos 7 24-01-2006 12:19:29
Cambiar el color de fondo de varios componentes... alt126 C++ Builder 1 05-02-2005 12:47:41
Cambiar el color de fondo de un TTextBrowser ruina Lazarus, FreePascal, Kylix, etc. 4 26-06-2004 16:52:13


La franja horaria es GMT +2. Ahora son las 11:15:25.


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