FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Xbrowse error en edicion + TAB
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Xbrowse error en edicion + TAB
Posted: Wed Jul 07, 2010 05:59 AM
Antonio/Daniel,

Al momento de estar en edicion y si se presiona TAB, marca error.

Code (fw): Select all Collapse
   Error description: Error BASE/1005  Class: 'NIL' has no property: NLASTKEY
   Args:
     [   1] = U   
     [   2] = N   13

Stack Calls
===========
   Called from:  => _NLASTKEY(0)
   Called from: .\source\classes\XBROWSE.PRG => EDITGETKEYDOWN(9931)
   Called from: .\source\classes\XBROWSE.PRG => (b)TXBRWCOLUMN:EDIT(9785)
   Called from: SourceCodeExtra\tget.prg => TGET:KEYDOWN(820)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1483)
   Called from: SourceCodeExtra\tget.prg => TGET:HANDLEEVENT(607)
   Called from: .\source\classes\WINDOW.PRG => _FWH(3391)
   Called from:  => DIALOGBOX(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(273)
   Called from: Source\RSMAIN.prg => MAIN(494)


El archivo TGET.PRG que esta enlazado es identico al que viene en Classes, a excepcion de un pequeño ajuste para el color de los gets.


Saludos
FWH 10.6 + xHarbour + Borland 582
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Xbrowse error en edicion + TAB
Posted: Wed Jul 07, 2010 04:59 PM
Raymundo
En el metodo Edit de la classe TXBrwColumn
busca este codigo

Code (fw): Select all Collapse
   
::oEditGet:bKeyDown   := { | nKey | EditGetkeyDown( Self, nKey ) }


y reemplazalo por
Code (fw): Select all Collapse
   ?::classname()  //TXBRWCOLUMN
   ?::oEditGet:Classname()  //TGET
   ? nKey              //10
   ?::oEditGet:nLastKey    //0
   ::oEditGet:bKeyDown   := { | nKey | EditGetkeyDown( Self, nKey ) }


esto para efecto de prueba
por que en teoria, la funcion EditGetKeyDown, no esta recibiendo el primer parametro que es el objeto
tbrwcolumn, por ello indica que la classe es NIL.
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Re: Xbrowse error en edicion + TAB
Posted: Wed Jul 07, 2010 06:08 PM

Carlos,

Me alegra mucho verte otra vez amigo mio, ya tenia rato que no tenia contacto contigo :P

Ya encontre la linea, pero no entiendo muy bien tus instrucciones.

las 4 lineas al principio son trazas verdad ?
Por que la 5a y la linea por sustituir son identicas.

Saludos

FWH 10.6 + xHarbour + Borland 582
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Xbrowse error en edicion + TAB
Posted: Thu Jul 08, 2010 11:54 PM

mas que todo para ver por que salta el error, no es para corregirlo
lo que esta comentado son los valores que deberia mostar.

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Xbrowse error en edicion + TAB
Posted: Fri Jul 09, 2010 06:02 AM
Raymundo,

Prueba con este cambio en la función EditGetKetDown() en xbrowse.prg:

Code (fw): Select all Collapse
   ...

   If lExit .and. ::nEditType != EDIT_DATE
      if ::oEditGet != nil
         ::oEditGet:nLastKey := nKey
         ::oEditGet:End()
      endif
   else
      if lExit
         ::PostEdit()
      endif
   Endif

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Re: Xbrowse error en edicion + TAB
Posted: Fri Jul 09, 2010 06:17 PM
Antonio y Carlos,

Funciona correctamente ahora ! :-)

Antonio, aprovechando el mismo tema, tengo el siguiente codigo :

Code (fw): Select all Collapse
redefine xbrowse lbCapVta id 101 of oFldrCptSrc:adialogs[1] ;
    columns 9,3,4,5,6,7,8 ;
    headers "NUM. PARTE","UNITARIO","UNS","D %","D $","UNITARIO","IMPORTE" ;
    pictures nil,"99,999.99","9,999.99","99.99","999.99","99,999.99","99,999.99" ;
    colsizes 100,80,50,50,60,80,90 ;
    array { { "","",0,0,0,0,0,0,"",0,0,0,0,"",0,"","","","",0,0,0 } } ;
    font aSysFnts[1]

AdjRStXBrws( lbCapVta, .f., {0,1,1,1,1,1,1} )
lbCapVta:nStretchCol   := 1
lbCapVta:lFastEdit     := .t.
lbCapVta:lKineticBrw   := .f.
lbCapVta:nMarqueeStyle := MARQSTYLE_HIGHLCELL
lbCapVta:bKeyDown      := { |nKey| CapVtsKey( nKey ) }

// Unidades
lbCapVta:aCols[3]:bEditValid := { | oGet, oCol | VldCaptVta( oGet, oCol, 1 ) }
lbCapVta:aCols[3]:nEditType  := EDIT_GET
lbCapVta:aCols[3]:bEditWhen  := { || !empty( lbCapVta:aRow[9] ) }
// Descto %
lbCapVta:aCols[4]:bEditValid := { | oGet, oCol | VldCaptVta( oGet, oCol, 2 ) }
lbCapVta:aCols[4]:nEditType  := EDIT_GET
lbCapVta:aCols[4]:bEditWhen  := { || !empty( lbCapVta:aRow[9] ) .and. ;
    lbCapVta:aRow[22] == 0 .and. lbCapVta:aRow[3] > 0 }


Cuando estoy en edicion y presiono la tecla - (minus) me saca de la edicion y me dispara el evento que tengo asignada a esa tecla que es la de eliminar el registro, asi que no puedo escribir algun numero negativo, obviamente podria asignar el evento a la tecla Supr, pero aqui el detalle es, si sera posible "bloquear" mientras se encuentra en edicion la celda cualquier evento asignado a una tecla.


Saludos y gracias por la solucion.
FWH 10.6 + xHarbour + Borland 582

Continue the discussion