In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Para Xavi (Scroll de un browse)

Foro público de Xailer en español
Responder
Avatar de Usuario
gabo1
Mensajes: 131
Registrado: Lun Oct 13, 2014 9:42 am

Para Xavi (Scroll de un browse)

Mensaje 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!
Avatar de Usuario
XeviCOMAS
Mensajes: 593
Registrado: Sab Mar 12, 2011 8:16 pm

Re: Para Xavi (Scroll de un browse)

Mensaje 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.
Un Saludo,
Xevi.
Avatar de Usuario
gabo1
Mensajes: 131
Registrado: Lun Oct 13, 2014 9:42 am

Re: Para Xavi (Scroll de un browse)

Mensaje por gabo1 »

Muchas Gracias Xavi!
Revisando y tratando de adaprtarlo a botones
Saludos!
Responder