PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Rueda del mouse y tablas
Rueda del mouse y tablas
Débuté par Susana Juárez, 11 sep. 2008 16:52 - 2 réponses
Posté le 11 septembre 2008 - 16:52
Hola, buenas,

Como todos sabeis, en una tabla de fichero (browsing table) la fila
seleccionada corresponde al registro en curso del fichero. Cuándo se hace
click sobre una fila se selecciona el registro del fichero
que corresponda, lo mismo ocurre si utilizamos la barra de desplazamiento.
En cambio, si nos desplazamos por la tabla con la rueda del mouse, aunque en
la tabla sea otra fila seleccionada, el registro en curso sigue siendo el
último sobre el que se ha hecho click. ¿Alguien sabe cómo sincronizar la
rueda del mouse y el fichero?

Gracias de nuevo
Posté le 12 septembre 2008 - 12:18
Hola Suzana,

Puedes escribir este código en el codigo de la rueda.
Es un código opcional.
Espero que ayuda.

--
Pat
http://megustawindev.free.fr

p is int = TablePosition(MySelf)
n is int = TableCount(MySelf,toShown)

IF _EVE.wParam > 0 THEN n = -n

TablePosition(MySelf, p+n)
TableSelectPlus(MySelf, p+n)
_EVE.Return = False
Posté le 16 septembre 2008 - 16:44
Muchas gracias Pat por tu respuesta.

He probado lo que me recomendabas, pero no funciona. Lo que he comprobado es
que sólo ocurre cuándo hay pocos registros en la tabla. Si se han
seleccionado más registros que filas tiene la tabla, funciona correctamente,
pero si se han seleccionado 3 o 4 registros, al usar la rueda, por ejemplo
para desplazarnos hacia arriba, aunque en la tabla esté seleccionada la
primera fila, el registro en curso del fichero sigue siendo el que estaba en
curso antes de desplazarnos con la rueda. El desplazamiento de la rueda es
de n filas en n filas, parece que si tienes menos de esas n filas en la
tabla, el puntero del fichero 'se pierde'.

En fin, gracias de nuevo

"pat" <ilikewd@free.fr> escribió en el mensaje
news:685eae866d4b411ce02741451aa106eb@news.pcsoft...

Hola Suzana,

Puedes escribir este código en el codigo de la rueda.
Es un código opcional.
Espero que ayuda.

--
Pat
http://megustawindev.free.fr

p is int = TablePosition(MySelf)
n is int = TableCount(MySelf,toShown)

IF _EVE.wParam > 0 THEN n = -n

TablePosition(MySelf, p+n)
TableSelectPlus(MySelf, p+n)
_EVE.Return = False