Scroll con rueda del ratón en DBCtrlGrid
Estaba trabajando con un DBCtrlGrid y me he dado cuenta de que no tiene implementada la respuesta a la rueda del ratón (es decir, los eventos OnMouseWheel, OnMouseWheelDown y OnMouseWheelUp). Total, que he pensado que debía capturar esos eventos desde el form (que sí que los tiene), comprobar si el control DBCtrlGrid tiene el foco, y hacerle scroll "a mano". Lo que no termino de ver es cómo hacer yo ese scroll, porque la propiedad DBCtrlGrid.ScrollBy hace un scroll muy raro...
He estado mirando por Google y, efectivamente, hay muchos artículos en los que la gente se queja de que no viene implementado el evento MouseWheel en el componente DBCtrlGrid, pero la solución que dan es innecesariamente complicada, con punteros, etc... (creo que lo que yo propongo es más sencillo y limpio). En fin, que si alguien es tan amable de decirme cómo conecto el evento OnMouseWheel del Form al scroll de mi DBCtrlGrid, se lo agradeceré ;) Y a ver si estos de CodeGear terminan de una vez los componentes, que siempre les falta algo o tienen bugs sin solucionar desde la versión 2:p |
Solucionado
Lo he solucionado haciendo Next o Prior en la tabla, en respuesta a los eventos OnMouseWheelDown y OnMouseWheelUp del Form, respectivamente. De esta manera se simula un scroll con la rueda del ratón :)
Ahora el único problemilla es que tengo que comprobar por cada evento OnMouseWheelDown y OnMouseWheelUp del Form si el foco lo tiene el DBCtrlGrid o (y aquí viene lo pesado del tema) todos y cada uno de los componentes que contiene ese DBCtrlGrid (DBEdits, etc...). |
Aunque llegue con unos cuantos años de retraso pongo la solución por si le sirve a alguien que lo busque:
Pon un TApplicationEvents y en el OnMessage pon esto:
|
La franja horaria es GMT +2. Ahora son las 03:20:09. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi