ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Verificação MaskEdit

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
tiagopdnjdc
Novato
Novato


Registrado: Domingo, 18 de Fevereiro de 2007
Mensagens: 52

MensagemEnviada: Ter Mar 13, 2007 4:10 pm    Assunto: Verificação MaskEdit Responder com Citação

Boa tarde Caros

Por favor tenho uma maskedit com uma máscara de CEP:

-

Porém quando algum usuário tenta cadastrar algum cep e deixa faltando algum caracter o programa da erro dizendo que está incorreto, gostaria de tratar isso para que quando estivesse errado ele não deixasse passar e voltaria no campo.

Minha dúvida é..como ficaria essa verificação...existe algum caracter coringa? EX:

if maskedit.text <> #####-### then
begin
ShowMessage('Erro de CEP);
Maskedit1.text.SetFocus;
end;

Seria isso que eu havia pensado..alguém pode me ajudar?
Muito Obrigado
Abs.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Ter Mar 13, 2007 5:10 pm    Assunto: Responder com Citação

Esta funçao foi tirado aqui do site, espero que ti ajude
Código:
function VerificaCEP(UF, CEPDigitado: string): Boolean;

Declare-a onde achar melhor, na seção public, private, ou na sua biblioteca de funções. Apenas se atente que, se declarada como private, somente a unit atual poderá utilizá-la.

Depois disso, faça o corpo de nossa função (copie e cole que é mais fácil! rs):

//Função: verificar o CEP de acordo com o estado escolhido
//Retorna: True caso esteja correto, False caso incorreto
//Exemplo: VerificaCEP(CmbBoxEstado.Text, edtCEP.Text)
//Obs.: Deve-se utilizar os seguintes items para a combo:
(*
AC,AL,AM,AP,BA,CE,DF,ES,GO,MA,MG,MS,MT,PA,PB,PE,PI,PR,RJ,RN,RO,RR,RS,SC,SE,SP,TO
*)
function VerificaCEP(UF, CEPDigitado: String): Boolean;

//esta função retira os caracteres diferentes de 0..9 de uma string
function SoNum(digitado: String): String;
var i: integer;
begin
Result := '';
for i:=1 To Length(digitado) do
if digitado[I] In ['0', '1','2','3','4','5','6','7','8','9'] then
Result := Result + digitado[I];
end;

var
cep : integer; //guarda o cep sem mascara como inteiro

begin
Result := True;
cep := StrToInt(SoNum(CEPDigitado));

//verifica o cep digitado em relacao ao estado escolhido
if UF='' then exit;
if UF='SP' then if ((cep<1000000>19999999)) then Result := False;
if UF='RJ' then if ((cep<20000000>28999999)) then Result := False;
if UF='MS' then if ((cep<79000000>79999999)) then Result := False;
if UF='MG' then if ((cep<30000000>39999999)) then Result := False;
if UF='MT' then if ((cep<78000000>78899999)) then Result := False;
if UF='AC' then if ((cep<69900000>69999999)) then Result := False;
if UF='AL' then if ((cep<5700000>57999999)) then Result := False;
if UF='AM' then if ((cep<6900000>69899999)) then Result := False;
if UF='AP' then if ((cep<68900000>69999999)) then Result := False;
if UF='BA' then if ((cep<40000000>48999999)) then Result := False;
if UF='CE' then if ((cep<60000000>63999999)) then Result := False;
if UF='DF' then if ((cep<70000000>73699999)) then Result := False;
if UF='ES' then if ((cep<29000000>29999999)) then Result := False;
if UF='GO' then if ((cep<73700000>76999999)) then Result := False;
if UF='MA' then if ((cep<65000000>65999999)) then Result := False;
if UF='PA' then if ((cep<66000000>68899999)) then Result := False;
if UF='PB' then if ((cep<58000000>58999999)) then Result := False;
if UF='PE' then if ((cep<50000000>56999999)) then Result := False;
if UF='PI' then if ((cep<64000000>64999999)) then Result := False;
if UF='PR' then if ((cep<80000000>87999999)) then Result := False;
if UF='RN' then if ((cep<59000000>59999999)) then Result := False;
if UF='RO' then if ((cep<78900000>78999999)) then Result := False;
if UF='RR' then if ((cep<69300000>69399999)) then Result := False;
if UF='RS' then if ((cep<90000000>99999999)) then Result := False;
if UF='SC' then if ((cep<88000000>89999999)) then Result := False;
if UF='SE' then if ((cep<49000000>49999999)) then Result := False;
if UF='TO' then if ((cep<77000000>77999999)) then Result := False;
end;

_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
chip_set
Experiente
Experiente


Registrado: Quarta-Feira, 14 de Dezembro de 2005
Mensagens: 448

MensagemEnviada: Ter Mar 13, 2007 5:24 pm    Assunto: Responder com Citação

cara tem um componente muito bom para essas coisas que é o ACBr Validador, que faz a verificação do cep e formata o mesmo, e faz o mesmo com CPF , CNPJ .... um monte de coisas e o melhor é Free.
http://acbr.sourceforge.net/wiki/index.php/P%E1gina_principal
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
tiagopdnjdc
Novato
Novato


Registrado: Domingo, 18 de Fevereiro de 2007
Mensagens: 52

MensagemEnviada: Ter Mar 13, 2007 10:06 pm    Assunto: Responder com Citação

chip_set escreveu:
cara tem um componente muito bom para essas coisas que é o ACBr Validador, que faz a verificação do cep e formata o mesmo, e faz o mesmo com CPF , CNPJ .... um monte de coisas e o melhor é Free.
http://acbr.sourceforge.net/wiki/index.php/P%E1gina_principal


Ola..obrigado pela ajuda..porém estou precisando de um código mesmo, não vou usar componentes externos.

Alguém tem alguma idéia?
Eu estou gravando ele como string mesmo na tabela...mascarado já!

Abs.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB