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 29-06-2003
Ana Iris Guille Ana Iris Guille is offline
Registrado
 
Registrado: jun 2003
Ubicación: Hace calor todo el tiempo, pero es lindo.
Posts: 1
Poder: 0
Ana Iris Guille Va por buen camino
Question Validación en Delphi.

Actualmente, estoy comenzando ha programar con delphi, pero tengo ciertas dudas, quisiera que me ayuden y me indiquen como validar la entrada de datos en delphi, por ejemplo: si deseo introducir la Cédula: V-12.837.967, que no admita otra letra diferente a la V,v,E,e; ni otro distinto de (-), y solo numeros despues. En los tipos texto que admita solo letras. Ayuda Por Favor.....

Adios.
Responder Con Cita
  #2  
Antiguo 29-06-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino
Hola:

Puedes utilizar un componente TMaskEdit, que permite acotar el tipo de caracter que corresponde a cada posición de la cadena introducida. En tu caso tendrías que poner esto en la propiedad EditMask:

EditMask = L\-00\.000\.000;1;_

La L indica que espera un caracter alfabético, la barra \ indica que el siguiente caracter es literal (el guión y los puntos de millar), y luego sólo se permiten cifras mediante ceros, (en la ayuda de Delphi explica cómo funcionan las máscaras). Lo que no puedes es indicarle qué valores alfabéticos deseas en concreto, en tu caso la V y la E, así que deberás interceptar el evento OnKeyPress del MaskEdit y anular cualquier caracter que no te sirva:

Código:
procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if NOT (Key in ['0' .. '9']) AND (UpCase(Key) <> 'V') AND 
    (UpCase(Key) <> 'E') then Key := #0;
end;
En la propiedad EditMask, el 1 que hay hacia el final indica que quieres que se almacene el valor tal como lo ves en pantalla (guiones y puntos incluídos); si sólo quisieras que los caracteres introducidos por el usuario, en tonces habría que poner un 0.
__________________
Guía de Estilo
Responder Con Cita
  #3  
Antiguo 30-06-2003
madriles madriles is offline
Miembro
 
Registrado: may 2003
Ubicación: madrid
Posts: 93
Poder: 21
madriles Va por buen camino
hola Ana, como estas empezando, es posible que no conozcas Trucomania, te recomiendo que visites esta pagina WWW.q3.nu
Te digo esto porque muchas soluciones y trucos las encontraras aqui antes de volverte loca.
concretamente la validacion de una cedula como tu quieres. no se trata solo de introducir de forma mas o menos bonita los datos, de hecho solo deberias introducir los numeros y que la letra te la facilitase directamente delphi. esto es un algoritmo que en cada pais seguramente es diferente y su programacion , aunque no es excesivamente complicada si puede ser un poco liosa.
ten en cuenta que la letra se puso como una forma de control para saber que los numeros estaban bien introducidos, sino no tendria sentido.
bueno despues de tanto rollo lo dicho , visita esa pagina y veras tres ejemplos de validacion (chile, argentina y españa ) entre otros muchos
espero que te sirva
Responder Con Cita
  #4  
Antiguo 30-06-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una forma de hacerlo es utilizando la función MatchesMask de la unidad Masks:

Código:
const
  Mask = '[Vv]-[0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]';

begin
  if not MatchesMask(Edit1.Text, Mask) then
    Application.MessageBox('Formato incorrecto', 'Error', MB_OK or MB_ICONSTOP);
end;
Este código podrías ponerlo en el evento OnExit del Edit1. Busca en la ayuda de Delphi acerca de esta función para entender cómo funciona. Básicamente MatchesMask comprueba que cada caracter de la cadena (Edit1.Text en este caso) coincida con el caracter correspondiente de la máscara o con uno de los caracteres en el conjunto encerrado por corchetes []. En tu caso la máscara compara el primer caracter y verifica que sea 'v' o 'V', el segundo debe ser un guión, el tercero y cuarto un número, el quinto un punto, etc.

// 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


La franja horaria es GMT +2. Ahora son las 14:58:34.


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