Hola
Uso la xBrowse con la database y me encontré con algo que, según creo, es un bug de la clase.
En mi browse tengo la necesidad se poner un "order 0" para ir al primer o al último registro físico de la oDBF.
Cuando estoy con ORDER 0, si quiero ingresar un dato en un campo del registro activo y, cuando el caracter a ingresar es por ejemplo la tecla igual ("SHIFT" + "="), me produce un error del sistema y lo mismo con cualquier tecla o combinación cuyo nKey sea menos a 65. Esto, reitero, se produce únicamente si estoy en ORDER 0.
Encontré dos formas de solucionarlo apenas retocando la TxBrowse y lo publico por si a alguien le sirve.
Una forma:
Y otra forma:
Saludos. Rolis
Uso la xBrowse con la database y me encontré con algo que, según creo, es un bug de la clase.
En mi browse tengo la necesidad se poner un "order 0" para ir al primer o al último registro físico de la oDBF.
Cuando estoy con ORDER 0, si quiero ingresar un dato en un campo del registro activo y, cuando el caracter a ingresar es por ejemplo la tecla igual ("SHIFT" + "="), me produce un error del sistema y lo mismo con cualquier tecla o combinación cuyo nKey sea menos a 65. Esto, reitero, se produce únicamente si estoy en ORDER 0.
Encontré dos formas de solucionarlo apenas retocando la TxBrowse y lo publico por si a alguien le sirve.
Una forma:
METHOD KeyChar( nKey, nFlags ) CLASS TXBrowse
..........
..........
If nKey == VK_BACK .and. !Empty( ::cSeek )
::Seek( Left( ::cSeek, Len( ::cSeek ) -1 ) )
* elseIf nKey > 31
elseIf nKey > 31 .and. indexord() <> 0 // modificado Rolis
::Seek( ::cSeek + cKey )
Endif
........Y otra forma:
METHOD KeyChar( nKey, nFlags ) CLASS TXBrowse
..........
..........
If nKey == VK_BACK .and. !Empty( ::cSeek )
::Seek( Left( ::cSeek, Len( ::cSeek ) -1 ) )
* elseIf nKey > 31
elseIf nKey > 64 // modificado Rolis
::Seek( ::cSeek + cKey )
Endif
........Saludos. Rolis