Sobre aplicaciones MDI - Child
Necesito saber como puedo prevenir mas de una instancia de una ventana hija en una aplicacion MDI.
El objetivo es que si el usuario trata de abrir una ventana hija que ya esta abierta, que muestre o active esa misma instancia que ya está abierta y no que se abra otra. |
ojala te sirva
if Assigned(Self.ActiveMDIChild) then
Self.ActiveMDIChild.Close; |
El método completo:
Tenemos una ventana mdiChild que se llama form1 y su clase es Tform1. En el OnClose de esa ventana ponemos:
Cuando queramos saber si hay una ventana abierta:
Para crear la ventana Form1, hay varias formas, la que más me gusta es: Fíjate en el parámetro "nil", eso quiere decir que nadie se va a encargar de liberar la ventana, porque al cerrarse, ya se lo hemos dicho (Action := cafree). Si necesitas saber de qué tipo es la ventana abierta en un determinado momento, siempre puedes comparar así:
Saludos. |
Yo utilizo otra forma, en form que llama al mdichild
La función es:
Tal ves no sea lo optimo pero funciona de maravilla. Lo unico a tener en cuenta que que los mdichild deben liberarse al cerrarlos poniendo action:=caFree; en el metodo close. |
La franja horaria es GMT +2. Ahora son las 15:52:48. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi