![]() |
Duda con Shortcut
Hola a todos!!
Tengo una duda-problema con una TAction, vereis: A dicha TAction le tengo asociado un Shortcut de manera que la acción se realice cada vez que se pulsa el cursor hacia izquierda (por ejemplo). Y funciona a la perfección, el problema es que dentro de mi aplicación la pulsación de la tecla izquierda ya siempre hace saltar la funcion de la TAction, y no puedo usar el cursor para moverme por los campos de un TStringGrid que tengo. Se me ocurrió añadir al final de la función que responde al cursor un SendMessage, que enviara dicha pulsación al Handle del TStringGrid correspondiente, pero lo que hace es cambiar de Campo en lugar de mover el cursor. Si alguien pudiera proponerme una solución que no pasara por sustituir la TAction por otro método (OnKeyPress o usando Hooks, esta última creo que es buena opción pero conlleva mucho cambio en el código) le estaría muy agradecido. Muchas Gracias! |
No entiendo el delphi
He encontrado por ahí en internet código en delhpi que creo que me serviría de saber adaptarlo a C++, pero la verdad es que hay algunas cosas que no entiendo.
Lo del SendMessage no funciona pq se lo mando al StringGrid, mi primera idea fue intentar mandárselo al TEdit que incluye dicho componente pero no encontré el modo. Resulta que TStringGrid hereda de TCustomGrid que tiene una propiedad llamada ImplaceEditor que es un puntero al TEdit. Problema....ImplaceEditor es una propiedad protegida y no puedo acceder a ella. Sin embargo en Internet he econtrado cierto código que según parece es capaz de acceder a dicha propiedad. Os lo pongo aquí a ver si alguién consigue explicármelo. Código:
{ ¿Qué es TGridCracker? ¿Y como se usa en C++? Muchas Gracias! |
Bueno aunque no he llegado a entender el código en Delphi. Ya he llegado a una solución. Al final (era lo más obvio y cupongo que es lo se hace en el código delphi anterior). He creado una clase que hereda de TStringGrid y le he añadido un método que me devuelva la propiedad que necesito usar. ¿Sencillo no?
Sin embargo nunca creo ninguna instancia de la nueva clase sino que le hago un overcast al puntero del StringGrid original y así puedo usar el método que he creado. Bueno, muchas gracias a todos aquellos que hayais pensado en ayudarme! |
QUE GUAY!!! UN HILO PARA MI SOLO
JAJAJAJA:D:D:D Saludos a todos!!! |
La franja horaria es GMT +2. Ahora son las 20:34:08. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi