Página 1 de 1

Duda con oMDIClient:aForms

Publicado: Jue Ene 12, 2006 3:45 am
por Pepe Lutrillo
Buenos Dias X-Men,
Tengo una duda con respecto a la propiedad aForms del oMDIClient: Estoy
teniendo problemas al tratar de obtener el número de formularios
MDIChild en una MDIFrame, ya que la parecer, el aForms no se calcula de
manera correcta. Para probarlo:
1. En el ejemplo MDISample, incluyan en el formulario MDIFrame un
TLabel, de preferencia en la parte superior izquierda del formulario,
que utilizaremos para ver el número de formularios MDIChild que se
encuentran abiertas dentro del oMDIClient,
2. En el evento OnPainted del MDIFrame incluyan el siguiente código:
Local nForms
nForms := Len(::oMDIClient:aForms)
::oLabel1:cText := Str(nForms, 2)
3. Ejecuten el programa y abran 5 "New Child Window" desde el menú. El
Tlabel mostrará el número de ventanas que se van abriendo.
4. Coloquen las 5 ventanas en cascada o mozaico. Dejen visible el Tlabel.
5. Comienzen a cerrar una a una las ventanas. El valor mostrado en
TLabel no siempre corresponde al número de ventanas abiertas. Sin
embargo, bajo el menú Windows de la aplicación se podrán ver
correctamente las ventanas que están abiertas.
Cual será el problema?
Muchas gracias por su ayuda
Saludos,
Pp Lu3o

Duda con oMDIClient:aForms

Publicado: Jue Ene 12, 2006 9:50 am
por jfgimenez
Pepe,
> 2. En el evento OnPainted del MDIFrame incluyan el siguiente código:
Seguramente es este el problema. El evento OnPainted se dispara solamente
cuando se necesita pintar la ventana, y no siempre es necesario. Prueba a
forzar el repintado (p.ej. minimizando y maximizando la ventana principal)
cada vez que cierras una mdichild.
--
Un saludo,
José F. Giménez