Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Digito a mais ou a menos no campo


nsouza

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0

Jhonas,

copiei o codigo e fiz tudo como orientado no tutorial. O Problema é que um dos CEP'S DE MG É

36050-130 e da a mensagem "Cep inválido" mesmo se eu simular um CEP tipo 45888-555 que não é de MG. Continua a mesma

mensagem.

Quanto ao CPF veio um arquivo ponto .PAS como procedo neste caso?

Obrigado mais uma vez!

Link para o comentário
Compartilhar em outros sites

  • 0
se eu simular um CEP tipo 45888-555 que não é de MG. Continua a mesma mensagem.

Se voce observou voce deve digitar o CEP e o Estado

exemplo:

No Edit1 voce coloca 45888-555

No Edit2 voce coloca BA

Quando clicar no botão ele fará uma verificação se este CEP é realmente da Bahia

procedure TForm1.Button1Click(Sender: TObject);
begin
 if ChecaCEP(Edit1.Text, Edit2.text)=true then
  showmessage ('cep válido!')
 else
  showmessage ('cep inválido!');
end;
Veja estes tópicos http://www.forumweb.com.br/foruns/index.php?showtopic=49021 http://scriptbrasil.com.br/forum/index.php...st&p=455417 Outra dica
Formatar CEP
{ Esta função forma CEP como: 99.999-999 }
function tbFormataCEP(const CEP: string): string;
var
  I: integer;
begin
  Result := '';
  for I := 1 to Length(CEP) do
    if CEP[I] in ['0'..'9'] then
      Result := Result + CEP[I];
  if Length(Result) <> 8 then
    raise Exception.Create('CEP inválido.')
  else
    Result :=
      Copy(Result, 1, 2) + '.' +
      Copy(Result, 3, 3) + '-' +
      Copy(Result, 6, 3);
end;

=== Para testar ===

- Coloque um Edit e um Button no form;
- No evento OnClick do Button coloque a instrução abaixo:

  Edit1.Text := tbFormataCEP(Edit1.Text);

Observações

Para formatar outros códigos como CPF, CGC, etc., pode-se usar a mesma idéia.
Autor: Daniel P. Guimarães

Quanto ao CPF veio um arquivo ponto .PAS como procedo neste caso?

Este arquivo voce deve copiar e colar no seu form ou adicioná-lo ao seu projeto

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas,

copiei o codigo e fiz tudo como orientado no tutorial. O Problema é que um dos CEP'S DE MG É

36050-130 e da a mensagem "Cep inválido" mesmo se eu simular um CEP tipo 45888-555 que não é de MG. Continua a mesma

mensagem.

Quanto ao CPF veio um arquivo ponto .PAS como procedo neste caso?

Obrigado mais uma vez!

Mas foi isso que eu fiz. o Edit um equivale ao mkeCep do meu programa e o edit 2 equivale a cbStado.

ai fica 36000-10 (maskedit) e MG(Combobox)

Link para o comentário
Compartilhar em outros sites

  • 0

nsouza ... veja um exemplo mais simples

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Mask;

type
  TForm1 = class(TForm)
    Button1: TButton;
    MaskEdit1: TMaskEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

Function ValidarCEP(const CEP: string): string;
var 
   I: integer;
begin
   Result := '';
   for I := 1 to Length(CEP) do
     if CEP[I] in ['0'..'9'] then
        Result := Result + CEP[I];
     if Length(Result) <> 8 then
        begin
           //ShowMessage('CEP Inválido');
           //Form1.MaskEdit1.SetFocus;
        end
     else
        begin
           Result := Copy(Result, 1, 2) + '.' + Copy(Result, 3, 3) + '-' + Copy(Result, 6, 3);
           ShowMessage('CEP Válido');
        end;   
end;

function FormataCEP(const CEP: string): string;
var
  I: integer;
begin
  Result := '';
  for I := 1 to Length(CEP) do
    if CEP[I] in ['0'..'9'] then
      Result := Result + CEP[I];
  if Length(Result) <> 8 then
        begin
           ShowMessage('CEP Inválido');
           Form1.MaskEdit1.SetFocus;
           //raise Exception.Create('CEP inválido.')
        end
  else
    Result :=
      Copy(Result, 1, 2) + '.' +
      Copy(Result, 3, 3) + '-' +
      Copy(Result, 6, 3);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  MaskEdit1.Text := FormataCEP(MaskEdit1.Text);
  ValidarCEP(MaskEdit1.Text);
end;

end.

Se voce digitar no MaskEdit1 menos de 8 digitos ou mais de 8 .. aparecerá a mensagem de CEP Inválido

e o cursor voltará ao MaskEdit1 para digitar novamente

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
nsouza ... veja um exemplo mais simples

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Mask;

type
  TForm1 = class(TForm)
    Button1: TButton;
    MaskEdit1: TMaskEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

Function ValidarCEP(const CEP: string): string;
var 
   I: integer;
begin
   Result := '';
   for I := 1 to Length(CEP) do
     if CEP[I] in ['0'..'9'] then
        Result := Result + CEP[I];
     if Length(Result) <> 8 then
        begin
           //ShowMessage('CEP Inválido');
           //Form1.MaskEdit1.SetFocus;
        end
     else
        begin
           Result := Copy(Result, 1, 2) + '.' + Copy(Result, 3, 3) + '-' + Copy(Result, 6, 3);
           ShowMessage('CEP Válido');
        end;   
end;

function FormataCEP(const CEP: string): string;
var
  I: integer;
begin
  Result := '';
  for I := 1 to Length(CEP) do
    if CEP[I] in ['0'..'9'] then
      Result := Result + CEP[I];
  if Length(Result) <> 8 then
        begin
           ShowMessage('CEP Inválido');
           Form1.MaskEdit1.SetFocus;
           //raise Exception.Create('CEP inválido.')
        end
  else
    Result :=
      Copy(Result, 1, 2) + '.' +
      Copy(Result, 3, 3) + '-' +
      Copy(Result, 6, 3);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  MaskEdit1.Text := FormataCEP(MaskEdit1.Text);
  ValidarCEP(MaskEdit1.Text);
end;

end.

Se voce digitar no MaskEdit1 menos de 8 digitos ou mais de 8 .. aparecerá a mensagem de CEP Inválido

e o cursor voltará ao MaskEdit1 para digitar novamente

abraço

Jhonas muito obrigado

(Resolvido)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...