Page 1 of 1
Dialog No Modal
Posted: Wed Nov 07, 2007 7:39 am
by Frafive
Hola amigos
Se puede saber cuando un dialog NO MODAL se ha cerrado ?
La idea es poder ejecutar una funcion justo en el momento que se cierra ese dialog, el valid no me vale se dispara antes de que se cierre el dialog.
un saludo
Posted: Wed Nov 07, 2007 8:21 am
by Silvio
Yes,
Code: Select all
IF oApp():oDlg != NIL
IF oApp():nEdit > 0
RETURN NIL
ELSE
oApp():oDlg:End()
SysRefresh()
ENDIF
ENDIF
Saludos,
Posted: Wed Nov 07, 2007 8:29 am
by Antonio Linares
Gabriel,
IsWindow( oDlg:hWnd ) devolverá .F. cuando el handle ya no sea válido.
Igual puedes comprobarlo desde un timer, desde una opción del menú, desde un WHEN, etc.
Posted: Wed Nov 07, 2007 11:24 am
by Frafive
Gracias Antonio, he puesto este codigo dentro del metodo close de la clase tdialog:
if ValType( ::bClose ) == "B"
if ! IsWindow(::hWnd )
Eval( ::bClose, Self )
Endif
Endif
He creado una data nueva bClose y desde mi prg puede hacer lo siguiente : oDlg:bClose:={||cualquiercosa()}
Esta bien esto o me va dar algun tipo de problema ?
un saludo
Posted: Wed Nov 07, 2007 12:16 pm
by Antonio Linares
Gabriel,
Parece una buena solución.
Pruébalo y si no te da errores, pues podrías usarlo