FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Antonio... xBrowse, modificar teclas pgup,pgdwon
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Antonio... xBrowse, modificar teclas pgup,pgdwon
Posted: Wed Feb 25, 2009 01:42 PM

Holas .

De nuevo por aqui.. existe alguna forma de poder capturar las teclas PgUp, PgDown del xBrowse para asignar mi propio metodo sin necesidad de modificar la clase en si.

Cualquier cable me serviria para probar.

Eso.
Gracias.

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 344
Joined: Tue Oct 11, 2005 11:33 AM
Re: Antonio... xBrowse, modificar teclas pgup,pgdwon
Posted: Wed Feb 25, 2009 02:07 PM
Olá Adolfo,

Você pode criar seu própio método para substituir o método da classe xbrowse assim:

Code (fw): Select all Collapse
function MAIN

override method KeyDown  in class XBrowse  with MyKeydown

...

return NIL

static function MyKeyDown( nKey, nFlags )

   local Self := HB_QSelf()
   local oCol

   do case
   case nKey == VK_ESCAPE
        if ::lEditMode
           oCol := ::SelectedCol()
           if oCol:oEditLbx != nil
              oCol:oEditLbx:nLastKey = VK_ESCAPE
           endif
           ::CancelEdit()
           return 0
        else
           return Super:KeyDown( nKey, nFlags )
        endif

     case nKey == VK_UP    .and. GetKeyState( VK_SHIFT ) .or. ;
        nKey == VK_DOWN  .and. GetKeyState( VK_SHIFT ) .or. ;
        nKey == VK_LEFT  .and. GetKeyState( VK_SHIFT ) .or. ;
        nKey == VK_RIGHT .and. GetKeyState( VK_SHIFT )
        return Super:KeyDown( nKey, nFlags )

   case nKey == VK_UP
      ::Select( 0 )
      ::GoUp()
      ::Select( 1 )

   case nKey == VK_DOWN
      ::Select( 0 )
      ::GoDown()
      ::Select( 1 )

   case nKey == VK_LEFT
      if GetKeyState( VK_CONTROL )
         ::GoLeftMost()
      else
         ::GoLeft()
      endif

   case nKey == VK_RIGHT
      if GetKeyState( VK_CONTROL )
         ::GoRightMost()
      else
         ::GoRight()
      endif

   case nKey == VK_HOME
         ::Select( 0 )
         ::GoTop()
         ::Select( 1 )

   case nKey == VK_END
         ::Select( 0 )
         ::GoBottom()
         ::Select( 1 )

   case nKey == VK_PRIOR
         ::Select( 0 )
         if GetKeyState( VK_CONTROL )
            ::GoTop()
         else
            ::PageUp()
         endif
         ::Select( 1 )

   case nKey == VK_NEXT
         ::Select( 0 )
         if GetKeyState( VK_CONTROL )
            ::GoBottom()
         else
            ::PageDown()
         endif
         ::Select( 1 )

   case ::lAllowCopy .and. nKey == ASC( 'C' ) .and. GetKeyState( VK_CONTROL )
         ::Copy()

   otherwise
         return Super:KeyDown( nKey, nFlags )

   endcase

return 0


Com isto você pode controlar todas as teclas do xbrowse.

Espero que seja isso que você precisa :-)
Obrigado, Regards, Saludos



Rossine.



Harbour and Harbour++

Continue the discussion