In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Cerrar [x] MDIClient

Foro público de Xailer en español
Responder
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Cerrar [x] MDIClient

Mensaje por zeasoftware »

Requiero captar el cierre de una ventana MDIChild, la cosa es que si se cierra en la [x] de la ventana maximizada paso por WMClose(), pero nunca pasa por el metodo CLOSE(), el cual capturo con los otros procesos.
METHOD WMClose( nWParam, nLParam ) CLASS TForm
:::::
IF nLParam == 0
IF ! Empty( ::oPrevWnd ) .AND. ::oPrevWnd:Handle != 0
::oPrevWnd:Enable()
::oPrevWnd:SetFocus()
::oPrevWnd := Nil
ELSEIF ::oParent:IsKindOf( "XForm" )
//logdebug("cerrado4", Len( ::oMDIClient:aForms )) Len = 1
::oParent:Enable() //Aqui no pasa al metodo close()
ENDIF
ENDIF
Reqeuiro comprobar que Len( ::oMDIClient:aForms ) == 0, para activar unas opciones, si ocupo los botones hechos por mi y que usan el metodo CLOSE(), valida bien, si uso la [x] de la ventana MDIChild no lo hace.
Alguna sugerencia?
Gracias de antemano.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
--
jasm.quitaesto
Mensajes: 420
Registrado: Sab Ago 16, 2008 9:06 pm

Cerrar [x] MDIClient

Mensaje por jasm.quitaesto »

Ramón
¿Has probado con el evento ONCLOSE del formulario?
SAludos
Alf+.
Ramón Zea escribió:
> Requiero captar el cierre de una ventana MDIChild, la cosa es que si se
> cierra en la [x] de la ventana maximizada paso por WMClose(), pero nunca
> pasa por el metodo CLOSE(), el cual capturo con los otros procesos.
>
> METHOD WMClose( nWParam, nLParam ) CLASS TForm
> :::::
> IF nLParam == 0
> IF ! Empty( ::oPrevWnd ) .AND. ::oPrevWnd:Handle != 0
> ::oPrevWnd:Enable()
> ::oPrevWnd:SetFocus()
> ::oPrevWnd := Nil
> ELSEIF ::oParent:IsKindOf( "XForm" )
> //logdebug("cerrado4", Len( ::oMDIClient:aForms )) Len = 1
> ::oParent:Enable() //Aqui no pasa al metodo close()
> ENDIF
> ENDIF
> Reqeuiro comprobar que Len( ::oMDIClient:aForms ) == 0, para activar
> unas opciones, si ocupo los botones hechos por mi y que usan el metodo
> CLOSE(), valida bien, si uso la [x] de la ventana MDIChild no lo hace.
>
> Alguna sugerencia?
>
> Gracias de antemano.
> --
> Ramón Zea
> 01.993.231-62-29
> http://www.paginasprodigy.com/zeasoftware/
> zeasoftware@prodigy.net.mx <mailto:zeasoftware@prodigy.net.mx>
> zeasoftware@hotmail.com <mailto:zeasoftware@hotmail.com>
> ramonzea@yahoo.com <mailto:ramonzea@yahoo.com>
> zeasoft.movil@hotmail.com <mailto:zeasoft.movil@hotmail.com>
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Cerrar [x] MDIClient

Mensaje por zeasoftware »

El asunto es que el OnClose ya lo tengo asignado, además, que debe de
hacerlo con todas las ventanas.
Gracias.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
Responder