Puedes capturar los mensajes CM_EXIT y CM_ENTER:
Código:
type
TForm1 = class(TForm)
procedure CMEnter(var Msg: TMessage); message CM_ENTER;
procedure CMLeave(var Msg: TMessage); message CM_LEAVE;
end;
implementation
procedure TForm1.CMEnter(var Msg: TMessage);
begin
inherited;
{ tu código }
end;
procedure TForm1.CMLeave(var Msg: TMessage);
begin
inherited;
{ tu código }
end;
end.
// Saludos