PDA

Ver la Versión Completa : Perder foco a cualquier otro programa de Windows


gluglu
20-04-2006, 17:27:10
Hola amigos,

Se puede interceptar la salida desde mi aplicación a cualquier otro programa de windows, o el Windows mismo ...

Lo que tengo es una ventana en mi aplicación cuya propiedad FormStyle es fsStayOnTop, y quiero que siempre esté encima de todas las demás, pero dentro de mi programa.

El problema es que si salgo al windows o a cualquier otro programa, dicha ventana sigue estando encima de todas las demás, y por lo tanto por encima también de cualquier ventana del Windows.

De la misma manera preguntar también la operación inversa. Cuando vuelvo de nuevo a mi aplicación, que manera tengo de detectarlo y volver a poner dicha ventana como fsStayOnTop.

Saludos

gluglu
21-04-2006, 00:28:40
Acabo de obtener informacion adicional :

Al parecer si en el evento Oncreate del form principal de mi aplicación, defino

Application.OnDeactivate := MiFuncion;

entonces en dicha 'MiFuncion' detecta la pulsación del raton fuera de la aplicación o cualquier otro foco que produzca la salida de mi aplicación.

La pregunta mía adicional sería ahora : Como saber qué Form de mi aplicación tiene en ese momento foco ? Y se podría entonces desde esa 'MiFuncion' quitar el fsStayOnTop (pasándolo a fsNormal) del form Modal que en ese momento tenga abierto ? Esto se podría hacer sin tener que haber incluido en el uses del form principal todos y cada uno de los demás form's que puedan ser modales ?

Un saludo.