BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)

BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)

Postby albeiroval » Tue May 14, 2019 7:40 pm

Buenas Noches.

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

Code: Select all  Expand view

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
albeiroval
 
Posts: 359
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: BUTTONBAR no sale CON VK_ESCAPE

Postby joseluisysturiz » Tue May 14, 2019 8: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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: BUTTONBAR no sale CON VK_ESCAPE

Postby albeiroval » Tue May 14, 2019 8: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
User avatar
albeiroval
 
Posts: 359
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: BUTTONBAR no sale CON VK_ESCAPE

Postby karinha » Tue May 14, 2019 8:46 pm

STATIC lExitDlg := .F.

en el boton de salida,

lExitDlg := .T.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7215
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: BUTTONBAR no sale CON VK_ESCAPE

Postby albeiroval » Tue May 14, 2019 9:12 pm

Karihna,

STATIC lExitDlg := .F.

en el boton de salida,

lExitDlg := .T.


Tampoco funciona
Saludos,
Regards,

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

Re: BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)

Postby albeiroval » Tue May 14, 2019 9:42 pm

Me respondo yo mismo.

Code: Select all  Expand view

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
albeiroval
 
Posts: 359
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)

Postby cmsoft » 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: Select all  Expand view
ACTIVATE DIALOG oDlg;
    ON INIT ( DisableSysMenuDlg(oDlg) )
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: BUTTONBAR no sale CON VK_ESCAPE (RESUELTO)

Postby albeiroval » 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
User avatar
albeiroval
 
Posts: 359
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: richard-service and 93 guests