PDA

Ver la Versión Completa : ¿Dónde está el foco?


Berto2003
01-03-2007, 12:05:14
Estimados amigos/as del foro:

Programando, me ha surgido una duda :confused: acerca de la captura del foco de una ventana. He estado mirando por el foro pero no sabido encontrar si existe respuesta para la pregunta que os digo. Bueno, la pregunta en concreto es: cuando un control toma el foco, ¿hay alguna forma de saber desde que otro control viene el foco? No sé si existe alguna función y no se me ocurre cómo realizarlo si es posible claro. He pensado en utilizar TabOrder pero no doy con la tecla.
¿Le ha surgido a alguien este misma duda? Si es así os agradeciría que me la comentarais.

Muchas gracias y
saludos, :)

Bye.

Lepe
01-03-2007, 12:18:36
Con las virguerías que puede hacer un usuario con el ratón... es difícil saber de donde viene el foco :D.

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:

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

Berto2003
01-03-2007, 13:49:38
Gracias Lepe,

Sí tienes razón, las virguerías son casi infinitas y eso, esto intentando darle libertad al usuario pero a la vez no dejar que haga ciertas cosas, un lío tu sabes ;)

Bueno, he conseguido "solucionar" por ahora el tema. Falta ahora el testeo exhaustivo (cruzo los dedos gracias por la ayuda y hasta pronto