Hola Livey.
A ver...
La cuestión es quien tiene el foco y si tiene o nó declarada una respuesta en el evento.
Lo que yo quiero decir es que si cada control tiene asignado algo a sus eventos OnClick y OnExit, y estando en un control en particular, si se hace click sobre el otro, el orden de disparo de los eventos es:
1) Control1.OnExit.
2) Control2.OnClick.
Ahora, ¿ Como puede pasar lo que sucede ?
La única manera que me ocurre es:
Tenemos dos controles Ctrl1 y Ctrl2 y tienen sus eventos asignados de este modo.
Ctrl1:
Código Delphi
[-]
procedure Ctrl1Click(Sender: TObject);
begin
ShowMessage('Ctrl1 OnClick');
end;
Ctrl1.OnExit = nil (ningún evento asignado)
Ctrl2:
Código Delphi
[-]
procedure Ctrl2Click(Sender: TObject);
begin
ShowMessage('Ctrl2 OnClick');
end;
procedure Ctrl2Exit(Sender: TObject);
begin
ShowMessage('Ctrl2 OnExit');
end;
Ahora supongamos que estamos con foco en Ctrl1. Si hago click sobre Ctrl2, es lógico que no voy a recibir respuesta del evento
Ctrl1.OnExit y sí el mensaje 'Ctrl2 OnClick'.
Saludos.