![]() |
![]() |
| 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
|
||||
|
||||
|
Si tu caso es el de separadores de miles y/o decimal, mira este hilo.
La causa, es que dicha validación se hace en el OnExit del DBedit, por tanto, es allí donde tendrías que realizarla. Si tienes varios DBEdits que funcionan así, puedes poner un ApplicationEvents, y allí (evento OnException) detectar la excepción concreta y mostrar tu mensaje, de esta forma, una sola validación te serviría para todos los dbedits. Un saludo. |
|
#2
|
|||
|
|||
|
Gracias por contestar, pero mi problema no es el de separacion si es por punto o por coma (eso creo yo, ya que si pongo un numero correcto con comas no se queja i graba perfectamente). Mi problema es validar si es un double o no. Ya que si en el DBedit pongo:
salta un error que es: 42,2,5 is not a valid floating point value for field 'preu' Entonce como he dixo antes para validarlo iba a utilizar (que no se si esta bien eso, ya que tampoco funciona):
Y lo havia puesto en el beforePost, pero al cambiar me salta ese error. Espero que me hayan entendido y que me haya explicado bien. Gracias de nuevo. Tram. Última edición por tramjauer fecha: 03-10-2005 a las 16:04:33. |
|
#3
|
|||
|
|||
|
Porque no lo implementas en el evento OnChange del field? incluso puedes usar StrToFloatDef..
|
|
#4
|
|||
|
|||
|
buenas de nuevo, lo he provado en el onExit del componente i en el onChage de del campo de la tabla i quando pongo el numero que anterior mente e puesto, ej: 41,,4 o el numero 41,33,4,
me sigue saliendo el mismo error, ya que se dispara antes el error que el evento. Gracias! Última edición por tramjauer fecha: 03-10-2005 a las 17:08:13. |
|
#5
|
|||
|
|||
|
tal vez te pueda servir el "Onvalidate" de los campos?
(boton derecho sobre el componente de la tabla o query, y luego click en fieldsEditor, le pones en agregar todos, los que no agregues no podras trabajar con ellos) y luego seleccionas el campo y en el object inspector en eventos seleccionas el OnValidate te genera algo asi como: procedure TForm1.Table1enteroValidate(Sender: TField); begin If Sender.NewValue < Sender.OldValue Then Raise ERangeError.CreateFmt( '%d debe ser mayor a %d',[Integer(Sender.NewValue), Integer(Sender.OldValue)]); end; si mal no recuerdo puedes generar un "sysutils.Abort" para que se cancele el posteo de la informacion |
|
#6
|
|||
|
|||
|
Lo siento pero con el onValidate tambien lo he probado y nada tambien salta ese error. No puede ser que nadie haya echo la validacion de algun precio que se introduzca o alguna cosa simiilar.
Tram. |
|
#7
|
|||
|
|||
|
Me parece q el error no lo tienes en Delphi sino en Access. Abre tu BD con Access y verifica este campo. O mejor deja de usar Acces y usa el Firebird Embedded por ejemplo..
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|