Page 1 of 1

SetDialogEsc falla con dialogo con boton con clausula cancel

PostPosted: Fri Sep 04, 2015 6:04 pm
by carlos vargas
Antonio,

cuando se usa la funcion SetDialogEsc( .F. ) para evitar que presionando escape se cierre el dialogo funciona bien siempre y cuando el dialogo no tenga un boton con la clausula CANCEL, de ser asi, el dialogo se cierra, sin importar el estado de SetDialogEsc.

salu2
carlos vargas

Re: SetDialogEsc falla con dialogo con boton con clausula cancel

PostPosted: Fri Sep 04, 2015 6:53 pm
by karinha
Code: Select all  Expand view

#include "FiveWin.ch"

STATIC lSalir := .F.

function Main()

   local oDlg, cTest := Space( 10 )

   SetDialogEsc( .F. )

   DEFINE DIALOG oDlg TITLE "Prueba de Teclado"
   
   @ 2, 2 GET cTest OF oDlg

   oDlg:bKeyDown = { | nKey | MsgInfo( "Minusculas.: " + Str( nKey ) ) }
   oDlg:bKeyChar = { | nKey | MsgInfo( "Mayusculas.: " + Str( nKey ) ) }

   @ 3,   10 BUTTON "&Salir" OF oDlg SIZE 30, 12 ;
             ACTION ( lSalir := .T., oDlg:End() ) CANCEL

   ACTIVATE DIALOG oDlg CENTERED ;
            VALID( lSalir )

return nil
 



Re: SetDialogEsc falla con dialogo con boton con clausula cancel

PostPosted: Sat Sep 05, 2015 7:10 am
by Antonio Linares
Carlos,

El ejemplo de Joao funciona bien, te sirve así ?

Gracias Joao :-)

Re: SetDialogEsc falla con dialogo con boton con clausula cancel

PostPosted: Sat Sep 05, 2015 12:36 pm
by csincuir
Tocayo, esta seria otra forma de hacerlo.
Saludos.

Carlos.

Code: Select all  Expand view

...---------
DEFINE DIALOG oDlg TITLE "Prueba Dialogo Esc"
   
   @ 2, 2 GET cTest OF oDlg

   @ 3,   10 BUTTON "Saldar" OF oDlg SIZE 30, 12
             ACTION  oDlg:End()  CANCEL

   ACTIVATE DIALOG oDlg CENTERED ;
            VALID Salida()

return nil

//-------------------------------------------------------------------------------------------------------------------
FUNCTION Salida( lEsc, lAsk, cMsg )

DEFAULT lEsc := .f., lAsk := .f., cMsg := ""

   if getkeystate( VK_ESCAPE )
      Return( lEsc )
   endif
   
   If lAsk
      If Empty( cMsg )
         cMsg := "Desea Salir de Este Proceso...?"
      End
      If !MsgNoyes(cMsg,"Confirme por Favor...")
         Return .f.
      End
   End

return .T.

 

Re: SetDialogEsc falla con dialogo con boton con clausula cancel

PostPosted: Sat Sep 05, 2015 4:56 pm
by joseluisysturiz
Carlos, te pongo como lo hago y me funciona al pelo y uso lCancel en un boton, saludos... :shock:

Code: Select all  Expand view

   REDEFINE BUTTONBMP aBtn[3] ID 203 OF oDlg ; // CALCELAR
      ACTION IIF( MsgNoYes( "Seguro Desea Salir/Cancelar Inscripción.?", oDatos:cTitMsg ) ,;
         oDlg:END(), ( aBtn[3]:SetFocus(), aBtn[3]:REFRESH() ) ) ;
      BITMAP "cancel16" TEXTRIGHT

   aBtn[3]:lCancel := .t.

   ACTIVATE DIALOG oDlg CENTER ;
      ON INIT( IIF( lNew ,;
         ( oGetFchIng:SetFocus(), oGetFchIng:REFRESH() ) ,;
         ( aGet[3]:SetFocus(), aGet[3]:REFRESH() ) ) ) ;
      VALID( !GETKEYSTATE( VK_ESCAPE ) )
 

Re: SetDialogEsc falla con dialogo con boton con clausula cancel

PostPosted: Sat Sep 05, 2015 8:38 pm
by carlos vargas
Antonio, si funciona bien el ejemplo de Joao,
pero creo que seria mas adecuado incluirlo en tdialog, validar el resultado de SetDialogEsc() y permitir la salida,
revisare el codigo para ver si doy con el lugar correcto, ya les informare.

salu2
carlos vargas

Re: SetDialogEsc falla con dialogo con boton con clausula cancel

PostPosted: Mon Sep 07, 2015 3:23 am
by Willi Quintana
Amigos,,, baje el FIVEDIT y salio un error al cerrar el nuevo proyecto con el click derecho
http://kn3.net/464B48BDD8DJPG.html

Re: SetDialogEsc falla con dialogo con boton con clausula cancel

PostPosted: Mon Sep 07, 2015 5:37 am
by cnavarro
Willi Quintana wrote:Amigos,,, baje el FIVEDIT y salio un error al cerrar el nuevo proyecto con el click derecho
http://kn3.net/464B48BDD8DJPG.html


Willi, los proyectos aun no se han empezado a desarrollar
De todas formas, explica un poco más qué pasos diste para que saltara el error
Gracias

-------------------------- EDITADO ---------------------------
Gracias Willi, ya lo he visto
Estoy en ello

Re: SetDialogEsc falla con dialogo con boton con clausula cancel

PostPosted: Mon Sep 07, 2015 8:13 am
by Antonio Linares
Willy,

En la versión de Fivedit que esta en FWH\samples los proyectos funcionan correctamente.

Solo tienes que ir a FWH\samples y hacer:

buildh.bat fivedit

Re: SetDialogEsc falla con dialogo con boton con clausula cancel

PostPosted: Mon Sep 07, 2015 11:17 am
by cnavarro
Willi Quintana wrote:Amigos,,, baje el FIVEDIT y salio un error al cerrar el nuevo proyecto con el click derecho
http://kn3.net/464B48BDD8DJPG.html


Solucionado
viewtopic.php?f=6&t=24025&p=181421#p181421