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 21-07-2010
marcos_0586 marcos_0586 is offline
Miembro
 
Registrado: jul 2010
Posts: 28
Poder: 0
marcos_0586 Va por buen camino
validar un integer cargado en un edit

Hola gente del foro, les comento que estoy realizando una aplicación en delphi7 y me surgió un problemita a la hora de validar un edit, el tema es asi yo ingreso un numero de DNI (tipo numérico) en un edit luego paso ese dato a integer y lo guardo en una tabla de esta forma: Table1.FieldByName('Dni').AsInteger:=StrToInt(Edit3.Text);
Cuando se ingresa un valor que no es numérico la aplicación se cuelga porque no es un valor valido para almacenar en la tabla, mi idea es anticiparme a la llegada del error y "desviar" el código de manera que no se cuelgue la aplicación y avisar al usuario que ese no es un valor permitido, pero no se me ocurre como? es posible lograr esto o algo parecido? gracias.
Responder Con Cita
  #2  
Antiguo 21-07-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La más sencilla que se me ocurre es que utilices:

Código Delphi [-]
Table1.FieldByName('Dni').AsInteger:=StrToInt(Edit3.Text, 0);

Si es incorrecto te guardará un 0 en lugar de fallar.
Otra opción es que compruebes el contenido antes de intentar guardarlo, para avisar al usuario.

Aun puedes utilizar otra similar: TryStrToInt
__________________
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.
Responder Con Cita
  #3  
Antiguo 21-07-2010
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Nada mas como complemento, o no se si en versiones nuevas de delphi se pueda con el strtoint, pero en versiones hasta la 7 es StrToIntDef(Edit3.Text, 0);
Responder Con Cita
  #4  
Antiguo 21-07-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola marcos.

Existen dos modos que pueden ingresar caracteres que no son números, en forma directa y pegándolos sobre el Edit.

Para evitar el ingreso usa el evento OnKeyPress del Edit:
Código:
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in [#8,#13,'0'..'9']) then
  begin
    Beep;
    Key:= #0;
  end;
end;
Para evitar que peguen caracteres no numéricos, usa el evento OnExit:
Código:
procedure TForm3.Edit1Exit(Sender: TObject);
var
  n,cd: Integer;
begin
  Val(Edit3.Text, n, cd);
  if cd > 0 then
  begin
    ShowMessage('No es un número válido');
    Edit1.SetFocus;
  end;
end;
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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 que el edit contenga 12,13 o 14 digitos Lizette Varios 3 19-11-2008 12:07:00
Guardar Integer con Db edit elfedecafe Conexión con bases de datos 4 09-12-2007 07:10:02
Validar Edit maru1981 OOP 4 03-08-2007 01:22:15
Validar Edit Elite237 OOP 3 31-07-2007 17:34:39
Validar Fecha en Edit eljavi Varios 4 04-03-2007 03:34:33


La franja horaria es GMT +2. Ahora son las 11:52:10.


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