BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)

Post Reply
User avatar
albeiroval
Posts: 323
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)

Post by albeiroval »

Buenas Noches.

Necesito salir con la tecla VK_ESCAPE en un BUTTONBAR pero no lo hace.
Aqui el codigo que uso.

Code: Select all

static Function DialogMain() 
  Local oDlg
  Local oFont
  Local oBar
  Local bKeydown
  Local oBtn         := Array(4)
  Local lExitDlg := FALSE
  
  DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12 BOLD
    
  DEFINE DIALOG oDlg RESOURCE "ButtonBar" TITLE "Egreso de Caja" FONT oFont ICON aBitmap[ BMP32_ICON ]; 
    TRANSPARENT
    
  REDEFINE BUTTONBAR oBar id 100 OF oDlg 2010 SIZE 75, 70

  DEFINE BUTTON oBtn[1] OF oBar; 
    PROMPT "Nueva"; 
    RESOURCE aBitmap[ BMP32_NEW ];  
    
  DEFINE BUTTON oBtn[2] OF oBar; 
    PROMPT "Buscar"; 
    RESOURCE aBitmap[ BMP32_SEARCH ]; 
    
  DEFINE BUTTON oBtn[3] OF oBar; 
    PROMPT "Listar"; 
    RESOURCE aBitmap[ BMP32_BROWSE ];   
    GROUP  
    
  DEFINE BUTTON oBtn[4] OF oBar; 
    PROMPT "Salir"; 
    RESOURCE aBitmap[ BMP32_EXIT ]; 
    ACTION ( lExitDlg:= TRUE, oDlg:End() ); 
    GROUP
    oBtn[4]:lCancel = TRUE 
    
  oBar:WinStyle( WS_BORDER, .F. )   
    
  AEval( oDlg:aControls, {|o| o:bKeyDown := {|nKey| KeyDown( nKey, oDlg, @lExitDlg )} } )
  
  ACTIVATE DIALOG oDlg;
    VALID lExitDlg;
    ON INIT ( DisableSysMenuDlg(oDlg) )
    
  RELEASE FONT oFont
    
Return Nil

static Function KeyDown( nKey, oDlg, lExitDlg )
    
    if GetKeyState( VK_ESCAPE )
       ? "VK_escape"
     lExitDlg := TRUE
     oDlg:End()
  else 
     ? "nKey", nKey
    endif 
                                    
Return Nil

 
Last edited by albeiroval on Tue May 14, 2019 9:39 pm, edited 3 times in total.
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: BUTTONBAR no sale CON VK_ESCAPE

Post by joseluisysturiz »

Saludos, solo por casualidad...no hagas comparacion si no asignacion...prueba con oBtn:lCancel := .t., no se, es solo costumbre de hacerlo asi y funciona al pelo sin hacer mas nada, gracias... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
albeiroval
Posts: 323
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: BUTTONBAR no sale CON VK_ESCAPE

Post by albeiroval »

Jose luis, un saludo hermano.

La instruccion oBtn[4]:lCancel = TRUE no es para comparacion lo que hace es asignar el valor TRUE, igual probe
como tu dices oBtn[4]:lCancel := TRUE y tampoco funciona
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: BUTTONBAR no sale CON VK_ESCAPE

Post by karinha »

STATIC lExitDlg := .F.

en el boton de salida,

lExitDlg := .T.
João Santos - São Paulo - Brasil
User avatar
albeiroval
Posts: 323
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: BUTTONBAR no sale CON VK_ESCAPE

Post by albeiroval »

Karihna,
STATIC lExitDlg := .F.

en el boton de salida,

lExitDlg := .T.
Tampoco funciona
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
albeiroval
Posts: 323
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)

Post by albeiroval »

Me respondo yo mismo.

Code: Select all

oDlg:bValid = <||
                                if GetKeyState( VK_ESCAPE ) 
                                 if MsgYesNo("Salir de Egresos ?", Name_Empresa)
                                    oDlg:End()
                                    Return TRUE
                                     endif
                                endif
                                
                                Return FALSE
                                >
 
ACTIVATE DIALOG oDlg;
    ON INIT ( DisableSysMenuDlg(oDlg) )
 
 
Last edited by albeiroval on Tue May 14, 2019 10:24 pm, edited 1 time in total.
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)

Post by cmsoft »

La tecla ESC por defecto cierra el dialogo, excepto que tenga una clausula Valid, pero es cierto que no la entrega como una nKey.
En tu ejemplo hubiese bastado:

Code: Select all

ACTIVATE DIALOG oDlg;
    ON INIT ( DisableSysMenuDlg(oDlg) )
User avatar
albeiroval
Posts: 323
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)

Post by albeiroval »

cmsoft,
La tecla ESC por defecto cierra el dialogo, excepto que tenga una clausula Valid, pero es cierto que no la entrega como una nKey.
ESO LO SE, pero no me gusta porque no anticipa el cierre del dialogo al usuario, por eso necesitaba el control del cierre.
Usando el codigo que postie funciona perfecto.
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Post Reply