Página 1 de 1

Para Xavi (Scroll de un browse)

Publicado: Sab Ene 23, 2016 12:58 am
por gabo1
Hola Xavi
Buscando en el foro. encontre
http://www.xailer.com/forum/viewtopic.p ... wse#p24833
Lo que quiero hacer es al tener presionado un boton sin soltarlo ejecute un PgUp o PgDown en el browse. He intentado con el siguiente codigo pero no funciona :-(

Código: Seleccionar todo

//------------------------------------------------------------------------------
METHOD BtnUpItemsLButtonDown( oSender, nKeyFlags, nPosX, nPosY ) CLASS TFormComedor
   ::oTimerPgUpDown:Enable()
   ::oNE_NombreCliente:Value:= Time()
RETURN Nil

//------------------------------------------------------------------------------
METHOD BtnUpItemsLButtonUp( oSender, nKeyFlags, nPosX, nPosY ) CLASS TFormComedor
   ::oTimerPgUpDown:Stop()
RETURN Nil

//------------------------------------------------------------------------------
METHOD TimerPgUpDownTimer( oSender ) CLASS TFormComedor
   ::oBrwDetalle:SetFocus()
   ::oBrwDetalle:GoPageUp()
   ::oNE_NombreCliente:Value:= Time()
RETURN Nil
Alguna Sugerencia ?

Saludos!

Re: Para Xavi (Scroll de un browse)

Publicado: Lun Ene 25, 2016 10:08 am
por XeviCOMAS
Gabo

Este es el código de miTBrowse,...
CLASS TBrowse FROM XBrowse
PUBLISHED:
PROPERTY lAllowColHiding INIT .F. //NO Mostrar/Ocultar Columnes
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lAllowColSwapping INIT .F. //NO Moure Columnes
PROPERTY lRecordSelector INIT .F.
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PROPERTY nHeaderHeight INIT MulDiv( 19, Application:nScale, 100 )
PROPERTY nRowHeight INIT MulDiv( 18, Application:nScale, 100 )
PROPERTY nMarqueeStyle INIT bmHIGHLROW
PROPERTY nClrSelFocusPane INIT clActiveCaption
PROPERTY lColDividerComplete INIT .F.
PROPERTY nClrSelPane INIT clInactiveCaption
PROPERTY nClrSelText INIT clInactiveCaptionText
PROPERTY lVScroll INIT bsYES
PROPERTY lHScroll INIT bsNO
PROPERTY nBorderStyle INIT bvSUNKEN

COMPONENT TimerChange
METHOD New( oParent ) CONSTRUCTOR
METHOD WMRButtonDown( nWParam, nLParam )
METHOD WMKeyDown( nKey, nFlags, hWnd )
ENDCLASS
*
**
METHOD New( oParent ) CLASS TBrowse
WITH OBJECT ::TimerChange := TTimer():New( self )
:lEnabled := .F.
:nInterval := 350
:OnTimer := {|oSender| oSender:lEnabled := .F., ::oParent:oParent:xBrowse1Change() }
:Create()
END
RETURN ::Super:New( oParent )
*
**
METHOD WMRButtonDown( nWParam, nLParam ) CLASS TBrowse
local nPosX, nPosY

nPosX := LoWord( nLParam )
nPosY := HiWord( nLParam )
::SelectCellFromPoint( nPosX, nPosY )

RETURN ::Super:WMRButtonDown( nWParam, nLParam )
*
**
METHOD WMKeyDown( nKey, nFlags, hWnd ) CLASS TBrowse

If ::Super:lEditMode
RETURN ::Super:WMKeyDown( nKey, nFlags, hWnd )
EndIf

If nKey == VK_HOME .and. GetKeyState( VK_CONTROL ) < 0 //Ctrl+Inici... Primera Fila
RETURN ::Super:WMKeyDown( VK_HOME, nFlags, hWnd )
ElseIF nKey == VK_END .and. GetKeyState( VK_CONTROL ) < 0 //Ctrl+Final... Última Fila
RETURN ::Super:WMKeyDown( VK_END, nFlags, hWnd )
ElseIF nKey == VK_HOME .and. ::nMarqueeStyle # bmHIGHLROW .and. ::nMarqueeStyle # bmHIGHLROWRC .and. ::nMarqueeStyle # bmHIGHLROWMS //Inici... Primera Columna
::Super:GoLeftMost()
ElseIF nKey == VK_END .and. ::nMarqueeStyle # bmHIGHLROW .and. ::nMarqueeStyle # bmHIGHLROWRC .and. ::nMarqueeStyle # bmHIGHLROWMS //Final... Última Columna
*//Falla en la versió 2.7. Es penja si la darrera columna està ajustada i amés es congelen les columnes.
::Super:GoRightMost()
*::GoRightMost()
ElseIF nKey == VK_LEFT .and. (::nMarqueeStyle = bmHIGHLROW .or. ::nMarqueeStyle = bmHIGHLROWRC .or. ::nMarqueeStyle = bmHIGHLROWMS)
ElseIF nKey == VK_RIGHT .and. (::nMarqueeStyle = bmHIGHLROW .or. ::nMarqueeStyle = bmHIGHLROWRC .or. ::nMarqueeStyle = bmHIGHLROWMS)
ElseIF nKey == VK_PRIOR .and. GetKeyState( VK_CONTROL ) < 0 //Ctrl+RePag... Any Anterior
RETURN ::Super:WMKeyDown( 5000, nFlags, hWnd )
ElseIF nKey == VK_NEXT .and. GetKeyState( VK_CONTROL ) < 0 //Ctrl+AvPag... Any Següent
RETURN ::Super:WMKeyDown( 6000, nFlags, hWnd )
ELSE
RETURN ::Super:WMKeyDown( nKey, nFlags, hWnd )
ENDIF

RETURN 0



Un Saludo,
Xevi.

Re: Para Xavi (Scroll de un browse)

Publicado: Lun Ene 25, 2016 9:49 pm
por gabo1
Muchas Gracias Xavi!
Revisando y tratando de adaprtarlo a botones
Saludos!