Scroll

Sabes quisiera saber si se puede diferenciar en un control MSHFLEXGRID cuando presiono el scrollbar hacia la derecha o hacia la izquierda...
Ayudame si puedes

5 Respuestas

Respuesta
El objeto FlexGrid no permite interceptar ese evento, pero si se puede interceptar cuando haces scroll, solo que no podes saber si fue para la derecha o para la izquierda, ahora...
¿Para qué necesitas hacer esto?
Quizás exista una solución más cómoda y fácil.
Lo que pasa es que quiero personalizar las columnas de un mshflexgrid. Quiere decir que si el usuario lo desea puede intercambiar el orden de las columnas. Esto lo hago colocando un textbox en cada encabezado de columna cuando pincha en ella, luego arrastra este textbox(que hace de columna y tiene el nombre de ella) y lo coloca en otra columna... Esto lo hago porque tengo una matriz con los valores de cada tamaño de columna por lo tanto cuando suelto el textbox (dragdrop) sé en que columna estoy por la posición por y la coloco en esa columna.
Pero cuando hago scroll en el mshflexgrid ya la matriz que tiene los valores de tamaño de cada columna no sirve porque las columnas ya no están en las mismas posiciones.
Lo que pude rescatar es que al hacer scroll avanza de una columna o retrocede de una columna por lo tanto cuando avanzo con el scroll puedo sumar o restar a la matrix el tamaño de columna que desapareció al hacer scroll, por eso necesito saber si estoy avanzando o retrocediendo en el scroll.
Espero te haya quedado claro.. porque esta muy enredado...
Muchísimas gracias
La verdad y espero que me sepas disculpar, pero no tengo ni idea de como realizar eso que solicitas...
No te quiero decir que no, pero creo que no se puede interceptar tal evento, aunque quizás exista alguna función API que la realice
Respuesta
1
Este es un pequeño programa de explicación. Sigue los pasos.
1.- En un nuevo proyecto, en el formulario 1 FORM1, en el objeto GENERAL, en el procedimiento DECLARACIONES escribe:
Public A
2.- Añade un control Hscroll
3.- Añade un Label
4.- En el control Hscroll, en el procedimiento Change copia este código:
If HScroll1.Value < A Then
Label1.Caption = "Menor"
Else
Label1.Caption = "Mayor"
End If
A = HScroll1.Value
5.- En el procedimieto load del formulario ecribe:
A=Hscroll1.value
6.- Corre el programa y haz click para mover el control HScroll.
Tu Amigo Coctel.
Respuesta
1
Usa el Evento Scroll (Ocurre cuando se desplaza el contenido del control MSHFlexGrid. Esto puede hacerse mediante las barras de desplazamiento, el teclado o por programa al cambiar los valores de las propiedades TopRow o LeftCol.)
Comentarios
Si la propiedad ScrollTrack es True, el evento se produce mientras el usuario esté arrastrando o desplazando con el mouse (ratón). Si la propiedad ScrollTrack es False, el evento se produce cuando termina la operación de arrastrar.
Esto lo he sacado de MSDN, nunca no he usado. A ver si te sirve.
Respuesta
En lo personal podría decirte que no, ya que me parece que responde más a una situación que a una actividad propia, es decir, si los registro que se muestran en un MSFG son más de los que podrían mostrarse en él desplegará los scroll, pero si aumentas el tamaño del scroll (Sin borrar la info del MSFG) y si los registro se muestran completos dentro de él, no presentará SCROLLs.
Sin embargo investigaré, como te mencioné es una apreciación personal.
Respuesta
-1
Nunca he revisado eso en un flexgrid pero puede ser que en el evento del keypress del control encuentres algo o en el evento scroll del mismo cheques que tecla se presiona o ver las posiciones y también puedes checar la ayuda online de microsoft.
e-mail: [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas