Page 1 of 1

WBrowse de Hernan

Posted: Tue May 30, 2006 6:36 pm
by txon
Hola amigos:

Queria hacer algo nuevo, con el fabuloso wbrowse de Hernan, pero no se si sera posible.
He creado un browse de ARRAY, y quiero a traves de codigo, buscar una linea en concreto dentro del browse, pense que podria ser algo asi como oBrw:Goto(nLinea), pero esta funcion no existe.
Despues pense en usar oBrw:Skip(1), para ir recorriendo el browse hasta que la linea coincidiera con la deseada, y me funciona siempre que la linea deseada este en pantalla en el momento de la busqueda, es decir que sea visible, si no lo es, aunque me la encuentra, no la muestra, ya que no hace ningun scroll automatico.
Lo que realmente busco es poder simular el oBrw:BSeek, que funciona para tablas DBFs, pero por lo que se no con ARRAYs.

Asi pues mi pregunta, es:
1) Existe una funcion que haga algo parecido a oBrw:Goto(nLinea) y se posicione automaticamente en esa linea.
2) En el caso de que lo pueda hacer con oBrw:Skip(1), como hago para visualizar la linea, si esta no se encuentra visible en el momento de la busqueda.

Gracias de antemano por vuestra ayuda.

Posted: Tue May 30, 2006 7:15 pm
by Raymundo Islas M.
Hola TXon

En tu Browse agregas esto :

lbPrds2Fab:bKeyDown := { | nKey | PRD2FABKEY( nKey, @aPrdsX, @pMX, lbPrds2Fab ) }

y la Funcion hace algo como esto :

Function PRD2FABKEY( nKey, aPrdsX, pMX, lbPrds2Fab )
LOCAL nLenStr, nEle
IF nKey == VK_SPACE
...
ELSE
cStr2Seek := Upper( Chr( nKey ) )
nLenStr := Len( cStr2Seek )
nEle := Ascan( aPrdsX, { |aEle| SubStr( aEle[1], 1, nLenStr ) == cStr2Seek } )
IF nEle > 0
pMX := nEle
lbPrds2Fab:REFRESH()
ENDIF
ENDIF
Return NIL
*-----*

Asi lo he usado y me funciona OK

Espero te sirva

SALUDOS

WBROSE de HERNAN

Posted: Tue May 30, 2006 7:39 pm
by txon
Perfecto, he hecho unos retoques y me funciona perfectamente.

Muchas gracias