Hola,
aunque no lo he probado, también podrías intentarlo haciendo un override de los métodos dinámicos protegidos
DoEnter y
DoExit, definidos en la clase TWinControl o TWidgetControl (según sea VCL o CLX). La implementación te queda casi igual que la que te proponen:
Código:
type
TForm1 = class(TForm)
procedure DoEnter; override;
procedure DoExit; override;
end;
implementation
procedure TForm1.DoEnter;
begin
inherited;
{ tu código }
end;
procedure TForm1.DoExit;
begin
inherited;
{ tu código }
end;
end.
Aunqué quizás sea un poco más fácil y además sería compatible con componentes CLX, cosa que no ocurriría con la otra implementación que te proponen.
Saludos.