Xbrowse: Como evitar GoDown()/GoUp() constante?

Xbrowse: Como evitar GoDown()/GoUp() constante?

Postby FranciscoA » Wed Mar 20, 2013 7:01 pm

Hola todos.
¿Como puedo evitar el GoDown() o GoUp() continuo en xBrowse cuando el usuario mantiene oprimida la tecla Down o Up?
Me explico:
Tengo un xBROWSE CON ARRAY, con items basados en los nombres de varias tablas dbf.

Cuando efectúo un avance o retroceso, tengo que cerrar la tabla actual y abrir la siguiente seleccionada en el xbrowse, reconstruyendo el array y refrescando el oBrw. Son tablas pequeñas (Max 30 items). (Este es el codigo requerido)

Todo funciona bien, excepto cuando el usuario mantiene oprimida las teclas arriba o abajo, avanzando varios items, o llegando al inicio o final. Lo que sucede es que si el oBrw-array tiene mas de 5 items, no se refresca bien, presentando repetidos los items. Tengo que moverme a un item diferente para recuperar el refresh correcto. Es decir, si el usuario avanza item por item, todo correcto, pero si mantiene oprimida la tecla de avance, ahí el problema.

¿Cómo puedo corregir esto? ó, ¿Cómo le digo a xbrowse que si se mantiene oprimida la tecla de avance, solo avance un registro?

Agradezco cualquier sugerencia.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Xbrowse: Como evitar GoDown()/GoUp() constante?

Postby FranciscoA » Wed Mar 20, 2013 7:25 pm

Hola, este es el codigo involucrado:
Code: Select all  Expand view
 bCkMesa:={|| MiMesa:="Mesa"+oLbx:aArrayData[oLbx:nArrayAt,1],;
               IF( !File(cDirMesas+"\"+(MiMesa)+".dbf") ,;
                   MsgInfo("
Mesa "+Right((MiMesa),3)+" ya no está activa."), ) ,;
                   cItemSetPos:=oLbx:aArrayData[oLbx:nArrayAt,1] ,;
                   CreeArrMesas(@aPathMesas,@aMesas,@aBmp,cDirMesas,cItemSetPos,oLbx) }

  bGetDatMesa:={|| MiMesa:="
Mesa"+oLbx:aArrayData[oLbx:nArrayAt,1],;
             IF( (MiMesa)->(!Used()) ,;  
                 ( CopyFile(cDirMesas+"
\"+(MiMesa)+".dbf", "C:\"+(MiMesa)+".dbf"),;
                   DbUseArea(.t.,,"
C:\"+(MiMesa),(MiMesa),.t.),;
                   DbSelectarea(MiMesa),;
                   SysRefresh() ),;
                   DbSelectarea(MiMesa) ),;
                   nTotal:=TotaliMesa(MiMesa,@nTotal) }

  bSelMesa:={|| cOldMesa:=(MiMesa),;
                Eval(bCkMesa),;  
                Eval(bGetDatMesa),;
                oBrw2:cAlias := (MiMesa),;
                oBrw2:Refresh(),;
             IF( MiMesa<>cOldMesa,;  
               ( (cOldMesa)->(dbCloseArea()),;
                Ferase("
C:\"+(cOldMesa)+".dbf") ), ) }

  oLbx:bChange  := {|| Eval(bSelMesa) }

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Xbrowse: Como evitar GoDown()/GoUp() constante?

Postby nnicanor » Fri Mar 22, 2013 4:35 pm

Porque necesitas abrir y cerrar las tablas ??, si tuvieras la informacion unificada e indexada con los campos suficienes solo necesitarias hacer un ORDSCOPE y actualizar el Browse

Slds
Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
nnicanor
 
Posts: 295
Joined: Fri Apr 23, 2010 4:30 am
Location: Colombia

Re: Xbrowse: Como evitar GoDown()/GoUp() constante?

Postby nageswaragunupudi » Fri Mar 22, 2013 9:10 pm

Normally it is desirable that the operations in bChange should be completed very fast.

However you may try this and see if this helps you.
Code: Select all  Expand view
oLbx:bChange  := {|| Eval(bSelMesa), PeekMessage( @c, oBrw:hWnd, 0, 0, 1 ) }
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Xbrowse: Como evitar GoDown()/GoUp() constante?

Postby FranciscoA » Sun Mar 24, 2013 3:42 pm

Gracias por responder.

nnicanor, en una version anterior del programa asi lo codifiqué, pero nuevos usuarios requerían de la modalidad descrita.

Mr. nageswaragunupudi, thanks, I'll try it.

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 90 guests