FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Xbrowse: Como evitar GoDown()/GoUp() constante?
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Xbrowse: Como evitar GoDown()/GoUp() constante?
Posted: Wed Mar 20, 2013 07: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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Xbrowse: Como evitar GoDown()/GoUp() constante?
Posted: Wed Mar 20, 2013 07:25 PM
Hola, este es el codigo involucrado:
Code (fw): Select all Collapse
  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
Posts: 302
Joined: Fri Apr 23, 2010 04:30 AM
Re: Xbrowse: Como evitar GoDown()/GoUp() constante?
Posted: Fri Mar 22, 2013 04: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
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Xbrowse: Como evitar GoDown()/GoUp() constante?
Posted: Fri Mar 22, 2013 09: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 (fw): Select all Collapse
 oLbx:bChange  := {|| Eval(bSelMesa), PeekMessage( @c, oBrw:hWnd, 0, 0, 1 ) }
Regards



G. N. Rao.

Hyderabad, India
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Xbrowse: Como evitar GoDown()/GoUp() constante?
Posted: Sun Mar 24, 2013 03: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

Continue the discussion