![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Hola a todos, estoy creando una app con C++ Builder y tengo un formulario que obtiene información de una BD de MySql mediante algunos DBEdit, muestra un campo de tipo flotante con 2 decimales, mi duda es........cómo controlo de manera manual que el usuario ingrese un flotante válido en ese DBEdit? Me explico, ya restringí mediante evento OnKeyPress, que el usuario sólo ingrese números y el punto decimal, pero al ingresa por ejemplo: 4.50.2 es el sistema que me arroja el mensaje de error (en inglés), lo que quiero es manejar de manera manual ese mensaje de error para mostrar un texto que yo desee, si no me equivoco, el término correcto sería "validar" manualmente ese dato editado. Gracias
|
|
#2
|
||||
|
||||
|
Yo creo que lo más sencillo es que no intentes controlar los errores en la entrada del usurio, sino que esperes a que la Base de Datos te devuelva el error, lo captures y lo muestres.
__________________
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. |
|
#3
|
|||
|
|||
|
Cita:
Adjunto una captura, al momento de editar el Precio de compra y querer pasar al sgte, me salta ese error, q claro, es lo correcto, pero un usuario q no sepa inglés no va a entender el mensaje de error. |
|
#4
|
||||
|
||||
|
Al ser un DBEdit, estará asociado a un dataset y en este se puede realizar la validación que buscas en el evento OnValidate del campo "precioc_prod".
Si no tienes persistentes los campos en el dataset, sería agregarlos en tiempo de diseño. Y esto te daría la opción de establecer el código de ese evento.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
|
#5
|
||||
|
||||
|
Hola.
Una opción es interceptar el evento OnSetText del campo asociado que se dispara cada vez que se recibe un nuevo valor pero antes de ser asignado. Por ejemplo, si el campo asociado al DBEdit se llamase "Numero":
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#6
|
|||
|
|||
|
Traté con tu código, en lo que equivaldría a c++ builder, pero me arroja error en la línea donde creas la excepción, que creo q eso es lo que necesito, de casualidad no sabes el código para el C builder? O qué es lo que estaría haciendo mal yo?
Código:
void __fastcall Tdmquerys::qdetdetallespreciov_prodSetText(TField *Sender, const UnicodeString Text)
{
Extended e;
if(!(TryStrToFloat(fdetprod->dbedetpc->Text, e))){
//La excepción raise Exception.Create( 'No es un número decimal válido' );
}
}
Gracias por responder |
|
#7
|
|||
|
|||
|
Cita:
A qué te refieres con campos "persistentes"? Investigando me topé con ese término, pero no encontré info.....entendible jeje |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| asignar contenido de un DBedit a otro DBedit | Richardn | Varios | 4 | 29-11-2012 17:06:03 |
| Edición de IP | FerCastro | Varios | 2 | 10-03-2007 00:46:59 |
| Edición de un DBGRID | luxus | Conexión con bases de datos | 1 | 13-02-2007 11:34:26 |
| Como puedo cambiar la propiedad de edicion y no edicion a un StringGrid1 | ctronx | Varios | 2 | 25-06-2004 23:10:19 |
|