FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)
Posted: Tue May 14, 2019 07:40 PM
Buenas Noches.

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

Code (fw): Select all Collapse
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
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: BUTTONBAR no sale CON VK_ESCAPE
Posted: Tue May 14, 2019 08:19 PM

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!
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: BUTTONBAR no sale CON VK_ESCAPE
Posted: Tue May 14, 2019 08:37 PM
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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: BUTTONBAR no sale CON VK_ESCAPE
Posted: Tue May 14, 2019 08:46 PM

STATIC lExitDlg := .F.

en el boton de salida,

lExitDlg := .T.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: BUTTONBAR no sale CON VK_ESCAPE
Posted: Tue May 14, 2019 09:12 PM
Karihna,


STATIC lExitDlg := .F.

en el boton de salida,

lExitDlg := .T.


Tampoco funciona
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)
Posted: Tue May 14, 2019 09:42 PM
Me respondo yo mismo.

Code (fw): Select all Collapse
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) )
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)
Posted: Tue May 14, 2019 10:21 PM
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 (fw): Select all Collapse
ACTIVATE DIALOG oDlg;
    ON INIT ( DisableSysMenuDlg(oDlg) )
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)
Posted: Tue May 14, 2019 10:29 PM
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

Continue the discussion