Con las virguerías que puede hacer un usuario con el ratón... es difícil saber de donde viene el foco
.
Es cierto que los controles tienen un evento OnExit, que puede ser enlazados al mismo evento, de forma que podrías saberlo más o menos:
Código Delphi
[-]
var FControl :TControl;
....
procedure TForm1.AlSalirDelControl(Sender:TObject);
begin
FControl := TControl(Sender);
end;
Pero tendrás que elegir todos los controles del Form y asignarle ese mismo evento para que al salir el foco, se registre.
Quizás haya una solución mejor que alguien haya utilizado.
Saludos