BUG en TRadMenu ( Radmenu.prg ) y FIX

Post Reply
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

BUG en TRadMenu ( Radmenu.prg ) y FIX

Post by Hernan Diego Ceccarelli »

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

   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

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

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

Post by Antonio Linares »

Querido Hernan,

Implementado para FWH 10.2.

Gracias como siempre! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

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

Post by Hernan Diego Ceccarelli »

Antonio Linares wrote:Querido Hernan,

Implementado para FWH 10.2.

Gracias como siempre! :-)
A tus ordenes, ya sabes :D
Post Reply