Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-05-2007
Juan Reyes Juan Reyes is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
Juan Reyes Va por buen camino
Smile Validar campo

Buenas tardes, me podrian apoyar con esta sentencia, quiero validar un campo en el cual si el usuario escribe cualquier ya sea caracter o string de texto despliegue un mensaje. Debe admitir únicamente números ya sea enteros o decimales.
Código Delphi [-]
procedure Tfcapturact.copau1Exit(Sender: TObject);
begin
if copau1.text in ['a*'..'z*']then
 begin
   application.messagebox('error',
  'Error',mb_iconwarning);
  end
  else begin end;
end;

Gracias por su tiempo y apoyo.
Responder Con Cita
  #2  
Antiguo 17-05-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Hola.

Por "Validar un campo" te referís a un campo de base de datos?
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 17-05-2007
Juan Reyes Juan Reyes is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
Juan Reyes Va por buen camino
Validar antes de guardar en una Base de datos

Esta validación es despues de que el usuario ingresa el string y cambia de TDedit.text.
Responder Con Cita
  #4  
Antiguo 17-05-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
bien... podes hacer algo como:
Código Delphi [-]
begin
  try
    StrToFloat(Edit1.Text);
  except
    on EConvertError do
    begin
      Edit1.SetFocus;
      ShowMessage('Debe ingresar un número válido!');
    end;
  end;
end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 18-05-2007
Juan Reyes Juan Reyes is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
Juan Reyes Va por buen camino
Cool

Gracias de antemano por tu tiempo y apoyo, fíjate que ya lo probe colocando esta sentencia en el evento OnExit del campo para que me despliegue el mensaje derror al cambiar de campo pero me despliega el siguiente mensaje y truena el programa:

Project LibroVAE.exe raised exception class EConvertError with message "letra 'is not valid float value'.

Ojala y me puedas seguir apoyando. Gracias nuevamente.
Responder Con Cita
  #6  
Antiguo 18-05-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Supongo que estas ejecutando la aplicación dentro del ide de delphi, y este salta por la excepción. Dado que no decis en que versión del mismo estas trabajando, no puedo indicarte cómo desactivar ese comportamiento... pero si corres tu aplicación desde fuera del ide, verás que funciona correctamente.

Es importante aprender a separar los mensajes del IDE de los de tu aplicación.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 18-05-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
También podrías usar la funcion TryStrToFloat.

Código Delphi [-]
procedure TForm1.Edit1Exit(Sender: TObject);
var
  Valor: Extended;
begin
  if TryStrtoFloat(Edit1.Text,Valor) = true then begin
     ShowMessage(FloattoStr(Valor));
  end
  else begin
         ShowMessage('ERROR DE CONVERSION');
  end;
end;

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #8  
Antiguo 18-05-2007
Juan Reyes Juan Reyes is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
Juan Reyes Va por buen camino
Thumbs up

Disculpa las molestias sabes, no se si tenga que ver la versión de Delphi estoy ocupando la 5, ya que al momento de compilarlo me despliega que no esta declarado TryStrToFloat.

Gracias por tu apoyo y tiempo.
Responder Con Cita
  #9  
Antiguo 18-05-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Vaya, pues no te queda mas remedio que usar StrtoFloat y cachar la excepcion, tal y como te lo mostró jachguate.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #10  
Antiguo 18-05-2007
Juan Reyes Juan Reyes is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
Juan Reyes Va por buen camino
Gracias, me comentas jachguate que dependiendo de la versión existe la forma de deshabilitar este comportamiento. Me podrias apoyar. Gracias de antemano a los dos.
Responder Con Cita
  #11  
Antiguo 18-05-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Como dice jachguate se puede usar el try, fuera de delphi funcionara, pero dentro te dara error, siempre es mejor en my opinion buscar otras alternativas y las hay.
saludos
Responder Con Cita
  #12  
Antiguo 18-05-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Pues solo podría decirte lo mismo que jachguate, el error que te muestra te va a aparecer siempre que ejecutes tu programa desde delphi, cuando lo ejecutas desde el ejecutable (perdón por el pleonasmo) no te lo va a mostrar y lo va a hacer correctamente mostrando solo el mensaje 'Debe ingresar un número válido!'.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #13  
Antiguo 18-05-2007
Juan Reyes Juan Reyes is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
Juan Reyes Va por buen camino
Gracias por su apoyo y tiempo, quedo corriendo a todo dar. Corriendo desde fuera de Delphi.
Responder Con Cita
  #14  
Antiguo 18-05-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Si es posible indicarle al ide de delphi las excepciones a la regla de parar cuando se producen las excepciones.. o bien que no queres que pare para nada.

Lamentablemente ya no tengo instalado nada mas viejo que bds 2006, así que lo diré de memoria:

Tools/Debugger Options/LanguageExceptions

Allí añadis la clase de excepción para la que no queres que pare; por ejemplo EConvertError, que es la que se dispara en este caso, o bien de-seleccionas el checkbox "Notify on language exceptions", en cuyo caso no parará independientemente de lo que ocurra... (no intentarlo si estas haciendo un programa que dispara misiles nucleares o formatea discos duros) ¡advertido estas!

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #15  
Antiguo 18-05-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jachguate
Lamentablemente ya no tengo instalado nada mas viejo que bds 2006, así que lo diré de memoria:

Tools/Debugger Options/LanguageExceptions
Pues si, efectivamente, que buena memoria tienes jachguate, no se detiene en el error EConvertError, lo he probado con Delphi4 y no se detiene.

Cita:
Empezado por jachguate
(no intentarlo si estas haciendo un programa que dispara misiles nucleares o formatea discos duros) ¡advertido estas!


Como se aprende en el club.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #16  
Antiguo 18-05-2007
Juan Reyes Juan Reyes is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
Juan Reyes Va por buen camino
Gracias, fíjate que en realidad no he practicado el trabajar ejecutandolo fuera del ide de Delphi, abrire un nuevo. Pregunta ¿Abró otro hilo para salir de esta duda?

Saludos.
Responder Con Cita
  #17  
Antiguo 18-05-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Si es para este tema de las excepciones no lo veo necesario.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #18  
Antiguo 18-05-2007
Juan Reyes Juan Reyes is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
Juan Reyes Va por buen camino
Muchas gracias y saludos

Exactamente como lo dijiste jachguate, que buena memoria, agregue está excepción y LISTO.
Gracias jachguate, egostar y Caral. Espero pronto poder estar en contacto con ustedes.
Buena tarde.
Responder Con Cita
  #19  
Antiguo 18-05-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Tal vez este par de componentes te sirvan.
Aqui lo tienes:
Saludos

Última edición por Caral fecha: 26-09-2007 a las 15:48:52.
Responder Con Cita
  #20  
Antiguo 18-05-2007
Juan Reyes Juan Reyes is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
Juan Reyes Va por buen camino
Gracias Caral los voy a checar. Buen día.

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Validar Campo esimon OOP 6 09-05-2006 16:07:34
Como validar un campo en un Trigger santi33a MS SQL Server 2 29-11-2005 13:38:57
Validar un campo string alcides SQL 4 21-04-2005 14:49:21
Validar un campo gluglu Varios 3 14-01-2005 15:43:58
Como Validar un campo numerico? Ricsato Varios 10 19-11-2003 17:31:05


La franja horaria es GMT +2. Ahora son las 18:15:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi