type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Edit1Enter(Sender: TObject);
procedure Edit2Enter(Sender: TObject);
private
PreEnter, PreExit: Array of TNotifyEvent;
public
{ Public declarations }
published
procedure EditEnter(Sender: TObject);
procedure EditExit(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.EditEnter(Sender: TObject);
begin
with TEdit(Sender) do
begin
Color := clBlue;
if Assigned(PreEnter[ComponentIndex]) then
PreEnter[ComponentIndex](Sender);
end;
end;
procedure TForm1.EditExit(Sender: TObject);
begin
with TEdit(Sender) do
begin
Color := clWindow;
if Assigned(PreExit[ComponentIndex]) then
PreExit[ComponentIndex](Sender);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
begin
SetLength(PreEnter, ComponentCount);
SetLength(PreExit, ComponentCount);
for I := 0 to ComponentCount-1 do
if Components[I].InheritsFrom(TEdit) then
with TEdit(Components[I]) do
begin
PreEnter[I] := OnEnter;
OnEnter := EditEnter;
PreExit[I] := OnExit;
OnExit := EditExit;
end;
end;
procedure TForm1.Edit1Enter(Sender: TObject);
begin
ShowMessage('Edit1Enter');
end;
procedure TForm1.Edit2Enter(Sender: TObject);
begin
ShowMessage('Edit2Enter');
end;
procedure TForm1.Edit1Enter(Sender: TObject);
begin
TEdit(Sender).Color := clBlue;
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
TEdit(Sender).Color := clWindow;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ControlCount-1 do
if Controls[I].InheritsFrom(TEdit) then
with TEdit(Controls[I]) do
begin
OnEnter := Edit1.OnEnter;
OnExit := Edit1.OnExit;
end;
end;