![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Impedir que se pueda salir de un DBGrid con el mouse
Hola a todos los del foro y gracias de antemano
tengo un dbgrid donde se van cargando registros para una factura y la única columna que se puede modificar es la de cantidad de forma que el usuario pueda alterar el valor y yo hago una actualización inmediata del costo y precio y hasta ahí todo perfecto. El problema viene cuando el usuario esta editando una celda para cambiar por ejemplo de 12 a 24 pero antes de validar con enter se va con el mouse a otro edit del formulario (fuera del dbgrid), dejando a la celda con el valor 24 y los datos correspondientes al costo y precio no se actualizan, de forma que lo que necesito es que si el usuario está alterando la cantidad en cualquier celda de la columna de cantidades que no pueda hacer click con el mouse en otro sitio del formulario o que se si se sale del dbgrid de esa manera el sistema lo asuma con si fuera un evento de la tecla escape o #27 con lo cual el sistema coloca de nuevo automaticamente la cantidad 12 que tenía en principio. Espero haberme explicado bien Gracias
__________________
Oskar |
#2
|
||||
|
||||
Hola.
Impedir que salga del grid lo veo engorroso. ¿Te has planteado la posibilidad de ir recalculando los demás campos según va escribiendo sin necesidad de pulsar Enter?.
__________________
Be water my friend. |
#3
|
||||
|
||||
Lo de impedirlo me parece difícil.
Prueba con el evento OnExit de DBGrid a ver si puedes detectar la salida y enviar o simular el ESCAPE.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Hola y gracias por responder tanto a Newtron como a naftali, si, ciertamente puede ser muy difícil y no es fundamental que el sistema valide eso.
Explico de todas formas con más detalle lo que sucede. Un usuario va agregando ítems en un dbgrid que tiene varias columnas, entre ellas, código, descripción, cantidad, precio unit y precio total y lo único que se puede modificar es la columna de cantidad. Para validar la cantidad el usuario debe presionar enter para que se recalcule la columna de precio total. Digamos que el usuario ya ha agregado 5 líneas de productos diferentes con sus respectivas cantidades y todo está re calculado sin problema, pero de pronto se da cuenta que en la tercera línea del dbgrid no eran 12 productos sino 24; de forma que va con el Mouse y hace click sobre la celda cantidad y después de escribir 24 no presiona enter para validar sino que con el Mouse vuelve al edit donde se escribe el próximo código que va a ser agregado al dbgrid dejando la celda en el gris con un 24 que no se ha validado y por ende no se ha refrescado la celda de precio global del ítem, de forma que cuando se manda a imprimir la factura, el registro indica 24 pero el cálculo real está basado en 12 productos que era la cifra inicial. Actualmente bloqueo en las celdas de cantidad cualquier tecla excepto enter, no hay forma de salir de la celda si el usuario no presiona enter para validar o escape con lo cual dejo la cantidad original, pero no logró hacer que se quede la cantidad original si el usuario se sale del dbgrid con Mouse llevando el focos a otro botón o a otro edit. Como podría validar ese evento o como dejar la cantidad original si se sale del dbgrid con el Mouse y no con enter o con escape como ya está establecido?
__________________
Oskar |
#5
|
||||
|
||||
Debes consultar, en todo caso, en el onExit de la celda hacer lo que quieres. |
#6
|
|||
|
|||
Casimiro, ya he consultado y he tratado de hacerlo por mi mismo, incluso en el onexit del dbgrid pero no encuentro la manera
__________________
Oskar |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mouse en Celda de DBgrid | angelholberg | Gráficos | 1 | 06-02-2009 03:10:24 |
No permitir seleccion con el mouse (dbGrid) | Caro | OOP | 2 | 11-07-2006 17:32:34 |
Impedir salir de un DBEdit si el valor no es válido | gluglu | Varios | 3 | 17-01-2005 17:35:33 |
Marcar un Registro al salir de DBGrid | gluglu | Conexión con bases de datos | 2 | 09-10-2004 01:54:23 |
Salir del DBgrid con el teclado | oneromm | Varios | 1 | 16-03-2004 23:23:24 |
![]() |
|