Ver Mensaje Individual
  #1  
Antiguo 06-05-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Reputación: 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