![]() |
Capturar texto que se este ingresado en celda DBGrid
Buen día.
Tengo una cuestión, necesito capturar la entrada del texto en una celda de un dbgrid para validar el ingreso de 1 sola coma y dos decimales, pero al obtener el texto asi, no me refresca el valor cuando ingreso más comas o más números.
Si por primera vez ingreso 1 la variable Texto = '1', pero si ingreso comas o números la cantidad que sea la variable sigue valiendo 1. Lo he intentado de varias formas pero no me funciona, no me toma el valor a medida que voy digitando, y lo necesito así a medida que el usuario vaya digitando para validar correctamente el contenido de la celda. Espero puedan ayudarme. Muchas gracias. |
Como validar el texto que se esté ingresando en la celda de una DBGRID
Buen día.
Tengo una cuestión, necesito capturar la entrada del texto en una celda de un dbgrid para validar el ingreso de 1 sola coma y dos decimales, pero al obtener el texto asi, no me refresca el valor cuando ingreso más comas o más números.
Si ingreso comas o números, el valor de la variable sigue siendo ''. Lo he intentado de varias formas pero no me funciona, no me toma el valor a medida que voy digitando, y lo necesito así a medida que el usuario vaya digitando para validar correctamente el contenido de la celda. Espero puedan ayudarme. Muchas gracias. |
|
Cita:
Así no me sirve porque necesito validarlo a medida que vaya digitando y no después de que salga del campo. |
Pues en el onChange.
|
Cita:
|
Hola
Pensandolo detenidamente no creo que puedas hacer lo que quieres desde un evento del DBGrid. Cuando empiezas a editar una celda el dbgrid crea automaticamente un editor (por defecto un Edit, corriganme si me equivoco) y lo que tendrias que hacer es capturar su evento onkeypress. He visto otros dbgrids que admiten personalizar el control a usar como editor en tal caso seria mas facil controlar lo que se teclea desde ahi. Se que no es de mucha ayuda pero en este caso creo que mejor optaria por crear una ventana aparte para modificar el registro. Saludos |
Como bien dice Caminante, cuando se edita in situ un campo en el DBGrid, en realidad se está haciendo en un "TEdit" (TDBGridInplaceEdit) sobrepuesto, por lo que todavía no está el contenido que estamos editando en el DBGrid.
Se podría hacer capturando el evento OnKeyPress de ese Edit sobrepuesto, pero también podemos hacer algo más sencillo ya que las pulsaciones que van destinadas a ese control también pasan por el OnKeyPress del DBGrid. A ver si te sirve esta chapucilla como base:
|
Cita:
Es un buen indicio la manera en que lo planteas pero aún falta esa cosa y quedaría como lo necesito. Muchas gracias. |
Cita:
Puedes sumar el caracter al texto actual y así obtener el texto completo.
o puedes manejarlo cuando ya el texto está completo en el OnKeyUp
|
Cita:
|
La franja horaria es GMT +2. Ahora son las 02:16:59. |
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