Problema con Escape en folder

Post Reply
User avatar
ralph
Posts: 63
Joined: Fri Nov 18, 2005 11:15 pm
Location: Lima - PERU

Problema con Escape en folder

Post by ralph »

Tengo un problema que aparece solo al compilar con FWH (2.7) y xHb (0995). En mi aplicacion con Clipper 5.3b funciona normal:

Tengo un Dialogo con un folder de 2 pestañas, en la primera pestaña tengo un browse, en la que defino que al presionar la tecla escape, se cierre el dialogo. Todo normal en Clipper, pero con xHb no se cierra el dialogo. Les paso una porcion del codigo para ver si alguien me puede explicar que puede estar pasando?

Code: Select all

    DEFINE DIALOG oDlg RESOURCE "Regvent" FONT oFont ;
           TITLE "Registro de Ventas" OF oWndMain:oWndclient

    REDEFINE FOLDER oFld ID 5000 OF oDlg     ;
      PROMPT ("Relacion de Comprobantes","Detalle del Comprobante") ;
      DIALOGS "regvent0","regvent1"
  
    ......

    REDEFINE BROWSE oBrwVenta GRID ;
           ID 301 OF oFld:aDialogs[1] ALIAS "REGV"

    ADD COLUMN TO oBrwVenta ;
        DATA REGV->CODVEN ;
        HEAD '#Operac' SIZE 65
     ........


    oBrwVenta:bKeyDown  := { | nKey | CaptKey1(nKey, oBrwVenta) }

  ....

       ACTIVATE DIALOG oDlg 

return nil

Static Function CaptKey1(nKey, oBrw)
local nRegistro, InsArchivo, wCuenta

DO CASE
   CASE nKey == VK_INSERT
        zIsNuevo := .T.
        oFld:SetOption(2)
   CASE nKey==VK_RETURN
        zIsNuevo := .F.
        oFld:SetOption(2)
   CASE nKey==VK_ESCAPE
        tone(500,1)  // esto si se ejecuta
        oBrw:oWnd:End()  //  <-------------esto no se ejecuta 
ENDCASE
Return NIL


Agradezco su ayuda

Ralph
fleal
Posts: 234
Joined: Tue Oct 25, 2005 12:39 am
Location: México, DF

Re: Problema con Escape en folder

Post by fleal »

Ralph,

prueba a pasar el oDlg a la función:

oBrwVenta:bKeyDown := { | nKey | CaptKey1(nKey, oBrwVenta, oDlg) }



CASE nKey==VK_ESCAPE
tone(500,1) // esto si se ejecuta
//oBrw:oWnd:End()
oDlg:End()
User avatar
ralph
Posts: 63
Joined: Fri Nov 18, 2005 11:15 pm
Location: Lima - PERU

Post by ralph »

Probando encontre que si sustituyo
oBrw:oWnd:End()

con esta linea:
oBrw:oWnd:oWnd:oWnd:End()

ya se cierra el dialogo. Pero creo que mejor paso el oDlg como parametro. Gracias por tu respuesta.

Ralph
Post Reply