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:
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++