Ver Mensaje Individual
  #6  
Antiguo 08-04-2007
d-hugo d-hugo is offline
Miembro
 
Registrado: abr 2007
Posts: 34
Reputación: 0
d-hugo Va por buen camino
otras ideas

En cuanto a poner la ventana TopMost, tu problema se resuelve facilmente con la función API SetWindowsPos:

Código Delphi [-]
SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);

Poniendo la propiedad WindowState en swMaximized y usando esta función deberías conseguir lo que deseas.

Los flags SWP_NOMOVE y SWP_NOSIZE mantienen el tamaño y la posición actual de la ventana, de lo contrario tienes que llenar los parámetros que están en cero. Busca en la ayuda del Windows SDK para más información sobre la función.

Una ventaja de esta función sobre la propiedad fsStayOnTop (aparte de poderse usar en aplicaciones MDI) es que al poner y quitar dicha propiedad la ventana suele parpadear, cosa que no sucede al usar la función con los parámetros HWND_TOPMOST o HWND_NOTOPMOST según sea el caso.

En relación al hotkey, ten presente que hacer una ventana TopMost no implica que el hotkey será system wide. Es decir, que cuando la ventana pierda el foco perderás la funcionalidad del KeyPreview. Busca en Google con las siguientes palabras clave y encontrarás información al respecto:
delphi system wide hotkey

Disculpa lo tardío de la respuesta, pero me registré hace poco. En cualquier caso, pensé que esto podría servir de ayuda a otros.

Saludos, Hugo
Responder Con Cita