BUG en TRadMenu ( Radmenu.prg ) y FIX

BUG en TRadMenu ( Radmenu.prg ) y FIX

Postby Hernan Diego Ceccarelli » Thu Feb 04, 2010 7:28 pm

Buenas,
Bueno al parecer toda la vida de fivewin existio este bug y nadie se ha dado cuenta :P , el tema es que cuando se deshabilita via clausula bWhen algun Item de un RADIO, el sistema a traves de las teclas GO_DOW/GO_UP sigue moviendose encima de un item deshabilitado. La solucion que encontre es la siguiente:

REDEFINE RADIO oRadio ID 101,102,103 .....

supongamos que la opcion 2, en tiempo de ejecucion la debo deshailitar, entonces asigno al item
oRadio:aItems[2]:bWhen:= {|| .F.}
oRadio:Refresh()

Esto funcionaba bien, es decir, deshabilita la opcion 2 y quedan activas la 1 y 3, PERO aun se sigue seleccionado la 2 a traves de las teclas VK_DOWN O VK_UP, cuando hacen la llamada en el KeyDown de algun item.

SOLUCION:

Modificar 2 metodos:
Code: Select all  Expand view

   METHOD GoPrevNext( lNext )  // Hernan 04/02/2010

   METHOD GoPrev() INLINE ::GoPrevNext( .F. )
//        ::SetOption( If( ::nOption == 1, Len( ::aItems ), ::nOption - 1 ) )

   METHOD GoNext() INLINE ::GoPrevNext( .T. )
//        ::SetOption( If( ::nOption == Len( ::aItems ), 1, ::nOption + 1 ) )
 


Crear un Metodo
Code: Select all  Expand view

METHOD GoPrevNext( lNext ) CLASS TRadMenu

   local nMove:= 0
   local nOption:= ::nOption

   DEFAULT lNext:= .F.

   while !( nMove > Len( ::aItems ) )
      nMove++

      if lNext
         nOption++
         nOption:= if( nOption > Len(::aItems), 1, nOption )
      else
         nOption--
         nOption:= if( nOption < 1, Len(::aItems), nOption )
      endif

      if ::aItems[nOption]:lWhen()
         ::nOption:= nOption
         exit
      endif

   enddo

   if nOption <> ::nOption
      ::SetOption( nOption )
   endif

return Self
 



Un Abrazo a todos.
User avatar
Hernan Diego Ceccarelli
 
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina

Re: BUG en TRadMenu ( Radmenu.prg ) y FIX

Postby Antonio Linares » Fri Feb 05, 2010 8:05 am

Querido Hernan,

Implementado para FWH 10.2.

Gracias como siempre! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: BUG en TRadMenu ( Radmenu.prg ) y FIX

Postby Hernan Diego Ceccarelli » Fri Feb 05, 2010 5:00 pm

Antonio Linares wrote:Querido Hernan,

Implementado para FWH 10.2.

Gracias como siempre! :-)


A tus ordenes, ya sabes :D
User avatar
Hernan Diego Ceccarelli
 
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 76 guests