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 18-11-2008
Lizette Lizette is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Lizette Va por buen camino
Validar que el edit contenga 12,13 o 14 digitos

Hola, tengo un problema con la validación de un edit, éste edit contendrá el código de barras del producto, los cuales regularmente tienen 12,13 o 14 digitos, utilizo éste código, y sólo me acepta 12 digitos y me anula la tecla, qué condición puedo usar, también le intente con
EditCve.text>11 and EditCve.text<15, y de la misma manera sólo me acepta 12 digitos, a lo cual me resta sólo dar enter..

Gracias por sus aportaciones..

Código Delphi [-]

procedure TfrmProductoAdd.EditCveKeyPress(Sender: TObject; var Key: Char);
begin
if ((Length(EditCve.Text)=12)or(Length(EditCve.Text)=13)
 or(Length(EditCve.Text)=14)) and (Key<>Char(8)) and (Key<>Char(13))then
   Key:=Char(0);
 if (Key=Char(13)) and ((Length(EditCve.Text)=12)
 or(Length(EditCve.Text)=13)or(Length(EditCve.Text)=14)) then
 begin
  Key:=Char(0);
  EditDes.SetFocus;
 end;
end;

Última edición por dec fecha: 18-11-2008 a las 07:54:04. Razón: errores
Responder Con Cita
  #2  
Antiguo 18-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Quizás sea mejor controlar sólo los casos de error, en lugar de intentar validar los casos aceptables:
Código Delphi [-]
procedure TfrmProductoAdd.EditCveKeyPress(Sender: TObject; var Key: Char);
  var l :integer;
begin
l := Length(EditCve.Text); 
 if (Key<>Char(8)) and (Key<>Char(13) and (l >14)then
   Key:=Char(0);
 if (Key=Char(13)) then
 begin
   if (l <12) or (l>14) then  // mostrar aviso
     ShowMessage('Atención la longitud no está en el rango 12-14, longitud actual:'+ inttostr(l);
  Key:=Char(0);
  EditDes.SetFocus;
 end;
end;
Si tienes un "or l =12" siempre entrará aunque el usuario quiera añadir más números.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 18-11-2008
Lizette Lizette is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Lizette Va por buen camino
Gracias Lepe por la observación.. Saludos
Responder Con Cita
  #4  
Antiguo 19-11-2008
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 17
pablopessoa Va por buen camino
Capas lo que digo es una burrada, pero si solo tenes que chequear la cantidad de digitos, el edit almacena un string, y por lo tanto podes preguntar el largo que tiene usando length, si no queres que se ingrese mas de 14 digitos, en el onChange del edit controlas que si el largo es igual a 14, pones el edit.enabled=false y listo.
Espero que te sirva, saludos!
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 Edit maru1981 OOP 4 03-08-2007 01:22:15
Validar Edit Elite237 OOP 3 31-07-2007 17:34:39
Validar Edit solo Texto Elite237 OOP 13 28-07-2007 21:45:25
Validar Fecha en Edit eljavi Varios 4 04-03-2007 03:34:33
aceptar solo digitos en Edit xbisont OOP 2 28-11-2003 22:51:59


La franja horaria es GMT +2. Ahora son las 03:34:44.


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