FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Ventana MDI, "Siempre visible" y "Pantalla completa"
Hola, me preguntaba cómo podría incorporar a mi programa las opciones de pantalla completa y siempre visible. La ventana principal es una MDI. Para lo de pantalla completa he probado poner BorderStyle en bsNone y WindowsState en wsMaximized, pero me anula un HotKey que tiene el programa (no sé por qué) y cuando devuelvo a las propiedades los valores originales (bsSizeable, wsComoEstuviera) y la dejo "Normal" (wsNormal) ocupa toda la pantalla igualmente.
Para lo de siempre visible se me ocurrió poner un TTimer que cada poco tiempo coloque el programa por delante, pero eso es una chapuza y seguro que hay algún método mejor. Muchas gracias, desde ya. Edito: también me da problemas con las ventanas hijas (se comportan de forma exrtaña) |
#2
|
||||
|
||||
Hola,
Cita:
Cita:
Cita:
|
#3
|
||||
|
||||
Gracias por la información, pero no puedo poner FormStyle en fsStayOnTop porque entonces ya no es fsMDIForm (en mi versión de DElphi es así).
En cuanto a lo de SetBounds, ¿cómo se utiliza? |
#4
|
||||
|
||||
Hola,
Cita:
Cita:
De todos modos echa un vistazo a la ayuda sobre el método "SetBounds" no vaya a ser que se me pase algo importante... |
#5
|
||||
|
||||
Pues muchas gracias,
y eso, a ver si a alguien más se le ocurre algo... |
#6
|
|||
|
|||
otras ideas
En cuanto a poner la ventana TopMost, tu problema se resuelve facilmente con la función API SetWindowsPos:
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 |
#7
|
||||
|
||||
Hola,
Cita:
|
#8
|
||||
|
||||
Muchísimas gracias, d-hugo.
Debido a los estudios y otros proyectos había dejado de lado el programa que me producía el problema (el cual no solucioné). Tendré que probar eso que me has dicho, parece ser la mejor opción. Gracias otra vez. Saludos a todos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿cuál es mejor: "close" o "application.terminate"? | unreal4u | Varios | 5 | 05-03-2007 12:01:19 |
"ChequeaEsto" elegido el futuro "Killer CLubDelphi" | mamcx | Noticias | 51 | 31-10-2006 21:56:32 |
porque no me reconoce los caracteres "*" ni "%" cuando filtro | mrmago | Conexión con bases de datos | 10 | 27-01-2006 05:21:16 |
Tipo de Variable."String" ó "Double" | UTECYBER | OOP | 7 | 15-12-2003 21:25:39 |
|