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
[-]procedure TfrmClientes.DBEdit1Enter(Sender: TObject);
var ColorOrigen: TColor;
begin
ColorOrigen := DBEdit1.Color ;
DBEdit1.Color := clSkyBlue;
end;
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.