Есть ли событие в Delphi, которое срабатывает при изменении ActiveControl?

Я хочу запустить небольшую процедуру, когда изменяется ActiveControl. Как я могу это сделать? Я подумал о том, что таймер проверяет активный элемент управления через определенные промежутки времени и запускает мою программу, когда она изменяется, но есть ли более элегантное решение?