FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Quiero al escribir en un dxDBGrid sólo números
Hola
Si quieres escribir sólo números , en cualquier control ,pues pones en el OnKeyPress :
vale , pero yo tengo un control dxDBGrid , el DBGrid del DevExpress , supongo que en el dbGrid será lo mismo . Tengo une evento GetText , que va analizando lo que vas escribiendo. Es así :
Ahí es donde habría que escribir el código , la variable ANode , pues la podemos obviar , y AText , registra lo que llevas escrito , ahí es donde veo yo que se puede poner el código adecuado . Pero realmente no sé como hacerlo . A ver si a alguien se le ocurre algo. Un saludo |
#2
|
||||
|
||||
Mmm...
No conozco el dxDBGrid, pero con el DBGrid usas el mismo evento (OnKeyPress), y lo filtras dependiendo del SelectedField...
Saludos. |
#3
|
|||
|
|||
No me vale el DBGrid , por que el evento es sólo para un columna , entonces en el evento de la columna no tiene el onkeypress ni existe los tipos de columna del otro componente .
|
#4
|
||||
|
||||
Si el Grid va a contener siempre los mismos datos, en lugar de dejar que se llene automáticamente con el dataset, puede definir los campos y definirles el tipo de dato que debe contener, enlazando cada columna a su campo correspodiente en el dataset.
__________________
|
#5
|
||||
|
||||
Cita:
Por otra parte, puedes usar la propiedad ValidChars del campo correspondiente para limitar los caracteres válidos. // Saludos |
#6
|
|||
|
|||
Al final lo he hecho por el evento onkeypress no de la columna sino del dxDBGrid.
Ahora me gustaria saber si existe alguna manera de poder controlar los campos Float , por que si permites escribir números y la coma , puede escribir esto : 11,33,11,1 No sé si hay algún código preparado para los float . |
#7
|
||||
|
||||
Cita:
// Saludos |
#8
|
||||
|
||||
Me deberia apodar DIVag0
Yo decia... me siento desechado .
Pero bueno, para esta nueva eventualidad y usando la misma logica metele un if (Key = ',') and (Pos(',', SelectedField....) = 0) then .... Pero claro puedo estar cayendo un error . Saludos. |
#9
|
|||
|
|||
Cita:
|
#10
|
||||
|
||||
Me parece David, que te la estas complicando demasiado y estas tratando de inventar el hilo negro.
No es por desanimarte ni nada por el estilo, es simplemente que este tipo de cosas ya se han visto mil veces. Y te aseguro que en tu código para validar fechas, tienes algún error y se puede escribir una fecha que no has considerado. Te digo esto porque para empezar, un DBGrid debería utilizarse cuando se utilizan bases de datos... vamos, que por eso se llama DBGrid (Data Base Grid). Y si tu no estas utilizando bases de datos, entonces este no es el mejor componente. Ahora como te propuse al principio, lo mejor es que definas las columnas que va a contener el Grid y a estas columnas les definas el Tipo de dato que va a contener. Haciendo eso, NO tendrás que realizar ninguna validación ni utilizar ningún código extra; el mismo componente se encargará de hacerlo. Pero como dije, me parece MUY extraño que estes utilizando un DBGrid cuando no utilizas una base de datos...
__________________
|
#11
|
|||
|
|||
Explico lo que estoy haciendo , es un filtro .
El dxDBGrid (el grid de Developer Express) , se asocia a un dataset vacio , creado en memoria , se llena la primera columna con los nombres de la base de datos , la segunda columna con las condiciones , por ejemplo , empieza por ... , mayor que ... ,etc... y en la tercera columna el usuario escribe el código por el que quiere escribir . Así pues aparece un grid vacio , el usuario habre un desplegable en la primera celda de la primera columna y aparecen todos los nombre por los que puede filtrar , luego en la segunda abre otro desplegable donde apareceran todos las condiciones y en la tercera ya no hay desplegable sino simplemente el usuario edita el valor a dar . Por ejemplo cantidad mayor que ....... fecha igual a ... Dirección contiene ... Esto ya esta conseguido , la idea es pues si elige una fecha que sólo escriba formato fecha (esto esta conseguido) , si elige un integer que sólo escriba números (también esta conseguido) y si elige un numerico (float, currency ,etc...) que pueda escribir sólo número decimal hasta dos . Es decir , hago que el grid funcione como 2 combobox y en TEdit y a medida que va añadiendo filas , pues es como si añadiera abajo otro combobox donde esta los nombres de la base de datos , otro donde esta la condición y un TEdit donde el usuario escribe el valor . La pregunta seria identica que si dijera , como puedo hacer que un edit , unas veces valga para fecha , otras para integer y otras para número . Eso sí las 2 primeras (fecha e integer ) estan resueltas y funcionan bien . bueno , esto es a modo decorativo ,que tampoco es tan importante , lo que si es de vital importancia es el post que he puesto en el foro de base de datos . Un saludo |
#12
|
||||
|
||||
A ver, por un lado dices:
Cita:
Cita:
// Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Solo Te Quiero Como Amigo | gatosoft | Humor | 30 | 06-06-2008 19:13:21 |
En un DBEdit quiero mostrar solo dos decimales | Ericato | Varios | 4 | 30-03-2007 16:20:43 |
Escribir Texto utilizando Numeros :) | DTAR | Varios | 27 | 01-02-2007 20:27:57 |
caja de texto que se pueda escribir numeros | cahosoft | JAVA | 1 | 30-12-2003 20:44:33 |
Escribir numeros | mosorio | OOP | 1 | 23-06-2003 15:48:14 |
|