![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
Ahora bien, no especificas de qué manera estás intentando con las teclas IZQUIERDA y DERECHA. Porque "algo" tienes que hacer, puesto que las teclas de cursor no funcionan en el StringGrid exactamente igual que TAB y SHIFT+TAB (no avanzan ni retroceden de fila cuando se llega a un extremo). Pero, si usas el evento KeyDown o KeyUp, tendrás que anular (Key := 0) el comportamiento natural o tendrás un doble movimiento. Además, no te funcionaría el retroceso a menos que oprimas SHIFT+LEFT pues aquí lo que se supone que no funciona realmente no funcioona al no tener oprimida la tecla SHIFT. Yo más o menos lo he podido hacer mandando una doble simulación:
pero deja algo extraño al teclado pues no recibe el UP del SHIFT. Y si se lo añdo, entonces no funciona. Por otra parte, lo que quieres lograr, creo que yo no lo haría así. Para empezar, ¿has visto lo que sucede cuando intentas seleccionar una celda con el ratón? No he probado todavía, pero me parece que sería mejor intentar no simular esas teclas y manipular los valores de Col y Row en el evento KeyDown. // Saludos |
|
#2
|
||||
|
||||
Saludos. |
|
#3
|
||||
|
||||
|
A ver porque igual suelto una tontería (como casi siempre).
Uno de nuestros componentes (que no he hecho yo) está basado en el StringGrid y nosotros podemos darle propiedades para que se pueda editar o no. He estado echando un vistazo y veo que el que se pueda editar o no se decide en el evento OnSelectCell. En este evento creo que puedes comprobar si la columna en la que se encuentra se puede editar o no y devolver True o False según te interese. Igual esto te ayuda en vez de intentar controlar el tema del teclado porque si en vez de desplazarte con el teclado picas con el ratón en una celda que no quieres que se edite ¿qué haces?. Saludos Edito: Si que he soltado una tontería, no he leido bien el mensaje y entendía que preguntabas otra cosa, mis disculpas.
__________________
Be water my friend. Última edición por newtron fecha: 20-09-2011 a las 19:24:20. |
|
#4
|
||||
|
||||
|
No vi que roman contestó mientras yo tecleaba y que apuntó algunas cosas de lo luego yo plasmé en mi código. Aclarar que las pruebas que he realizado no dejan "atontado al teclado" y funciona bien al seleccionar con el ratón y luego volver a "teclear".
Pruébalo a ver si te sirve. Saludos. |
|
#5
|
||||
|
||||
|
Cita:
y sería deseable de lograr.// Saludos |
|
#6
|
||||
|
||||
|
Caramba, roman nos vamos pisando los mensajes, tampoco vi que respondias mientras ya estaba realizando otro comentario...
![]() Saludos. |
|
#7
|
||||
|
||||
|
Je, je. Oye escafandra: algo no me funciona. Creí que sí, pero al poner tu código, el LEFT no me funciona cuando me cruzo con un cero. Por ello había quitado el UP del SHIFT, que es cuando se "atonta" el teclado. ¿Cambiaste algo en el SelectCell?
// Saludos |
|
#8
|
||||
|
||||
|
Para empezar, gracias a todos
![]() Veamos, lo que estoy intentando conseguir es que sólamente puedan ser editables las celdas permitidas y además que el cursor ni siquiera pueda detenerse en las celdas no permitidas, de esa manera el usuario no tiene que estar con las teclas (o el ratón) moviéndose por las celdas, ya que él no sabe en cada caso cuales son las editables. Así que si moviéndose con las teclas IZQ y DER se posiciona automáticamente en las celdas válidas el trabajo es más cómodo, más intuitivo, más rápido y no hay equivocaciones. He probado el código que habéis puesto y el problema es que cuando va hacia atrás y se encuentra una celda no editable... ahí se queda. Sin embargo, pulsando Shift+Tab sí que se la salta y va a la anterior válida/editable. Es por lo que decía que debe de haber otra forma de simular de verdad esa tecla, el comportamiento no es exactamente igual. Voy a seguir haciendo unas pruebas, a ver...
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#9
|
||||
|
||||
|
Cita:
Y el problema es que ninguna solución que he encontrado simula de verdad la pulsación de las tecla shift+tab al mismo tiempo. He hecho otras pruebas y siempre acaban mal. Sin embargo si en ese punto le pulso a shift+tab continua perfectamente, o sea, hay que simular esas teclas de otra forma que las simule de verdad ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#10
|
||||
|
||||
|
Cita:
// Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Detectar pulsación de teclas Ctrl, Alt y Shift y teclas virtuales (de función,...) | rrf | Varios | 11 | 09-08-2017 13:24:21 |
| El programa se queda "colgado" mientras copia y luego "despierta" | NeWsP | OOP | 5 | 10-03-2010 22:05:40 |
| Como hacer que se vea "Si" en vez de "TRUE" en un DBGrid | lu9eui | C++ Builder | 2 | 07-08-2007 04:03:13 |
| Necesito llamar a métodos de clases "hija" desde su clase "padre" | Flecha | OOP | 17 | 20-04-2007 00:03:53 |
|