Dialog No Modal

Post Reply
Frafive
Posts: 189
Joined: Wed Apr 05, 2006 9:48 pm

Dialog No Modal

Post 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
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Post by Silvio »

Yes,

Code: Select all

   IF oApp():oDlg != NIL
      IF oApp():nEdit > 0
         RETURN NIL
      ELSE
         oApp():oDlg:End()
         SysRefresh()
      ENDIF
   ENDIF

Saludos,
Best Regards, Saludos

Falconi Silvio
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Frafive
Posts: 189
Joined: Wed Apr 05, 2006 9:48 pm

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Gabriel,

Parece una buena solución.

Pruébalo y si no te da errores, pues podrías usarlo
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply