FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Lista de formularios activos
Saludos Club,
Hay alguna lista de los formularios que están visibles organizada por el orden de visibilidad de los formularios? Por ejemplo, si tengo este código:
Hay alguna forma de saber que el form1 está delante del form3? No puede ser con el Screen.ActiveForm porque este me daría el form2 y no es lo que necesito. Lo que quiero es tener un formulario delante de todos los demás de la aplicación pero no delante de las demás aplicaciones. Se les ocurre alguna forma? Bueno, espero haberme explicado bien. Gracias de antemano.
__________________
Att: ΓħΞ ŘēąĿ βļåķΣ |
#2
|
|||
|
|||
no entiendo bien lo que quieres hacer porque primero dices que quieres saber que form esta delante y luego que quieres que un determinado form esté delante, si es esto último quizas con esto:
Form1.BringToFront; |
#3
|
||||
|
||||
Saludos cocute, esto me traerá al form1, pero no es eso lo que quiero. Lo que quiero es, si los tres formularios están visibles, cúal es el orden en que están presentandose.
Por ejemplo, con el mismo código que plantee al principio:
Esto me dará el siguiente orden de visibilidad: 1- Form2 2- Form1 3- Form3 Pero si le doy clic al form1, me dará el siguiente orden: 1- Form1 2- Form2 3- Form3 Lo que necesito saber es si el form2 está delante del form3. Espero haberme explicado mejor.
__________________
Att: ΓħΞ ŘēąĿ βļåķΣ |
#4
|
||||
|
||||
Creo que lo tengo.
En el fondo, lo que tú quieres saber es el z-order de las ventanas actualmente mostradas. El z-order es el orden en el que están "apiladas" las ventanas en la pantalla. Siendo la que está "arriba de todo" la ventana con el z-order cero y así en orden creciente hasta la última. La API de Windows tiene dos funciones para saber el z-order de las ventanas, por el momento pude determinar el z-order de todas las ventanas abiertas (la de la aplicación actual y las del resto de las aplicaciones) usando estas dos funciones: GetTopWindow() devuelve el handle de la ventana con z-order cero si le pasas cero como parámetro:
Luego: GetNextWindow() devuelve la siguiente ventana según su z-order del handle que le pasas como parámetro, el segundo parmámetro sirve para indicarle la dirección en la que quieres recorrer el z-order:
Lo que hago aquí es obtener el handle de la ventana "arriba de todo" y luego entro al ciclo en el que recorro todas las ventanas hasta abajo de la pila de ventanas. La última ventana no tiene una ventana siguiente y la función GetNextWindow devuelve cero, con lo que finaliza el ciclo.
Este sería el código con el que podrías comenzar a experimentar. La variable z te dirá el z-order de las ventanas. |
#5
|
||||
|
||||
Esto era exactamente lo que necesitaba
Todavía no lo he probado pero eso era lo que necesitaba. Muchas gracias
__________________
Att: ΓħΞ ŘēąĿ βļåķΣ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Componentes activos de una red | Indira | Redes | 0 | 06-12-2007 17:35:35 |
Form activos | lalo | Varios | 0 | 13-01-2005 14:21:53 |
lista de formularios | jpep | Varios | 10 | 26-07-2003 12:48:11 |
Ver temas activos de Hoy | andres1569 | Varios | 5 | 20-06-2003 00:15:06 |
|