Bom pessoal esse é meu primeiro artigo e resolvi escrever sobre como construir uma aplicação de consulta de CEP de uma maneira bem simples, trabalhando com WebServices, vou demonstrar como construir uma aplicação de consulta de CEP utilizando o componente ACBrCEP. Com esse componente podemos consumir um WebServices disponível na Internet para consultar endereços completos.

Lembrando que como pré-requisito temos que instalar a suíte de componentes ACBr, onde serão disponibilizados vários componentes de grande utilidade para nós desenvolvedores.

Vamos construir a tela de consulta.

Adicione os seguintes componentes:

  • 8 TEdit (para exibirmos o resultado da consulta)
  • 8 TLabel (para identificar os campos)
  • 1 TButton (componente que vai enviar a consulta)
  • 1 TACBrCEP

Layout da tela de consulta
Figura 1. Layout da tela de consulta.

No campo onde será informado o CEP para consulta, renomear o componente Edt para edtConsulta, os demais Edts renomeie de modo coerente com o resultado que será exibido.

Organize os componentes de modo que se entenda o resultado final da pesquisa, agora vamos preparar a consulta.

Temos que fazer algumas modificações no componente TACBrCEP, no Object Inspector preencher a propriedade WebService. Existem várias opções de WebServices de pesquisa, mas nesse exemplo vamos selecionar wsRepublicaVirtual onde automaticamente será preenchida a propriedade URL com o respectivo endereço.

Modificações nas propriedade do componente ACBrCEP
Figura 2. Modificações nas propriedade do componente ACBrCEP.

Agora vamos codificar o botão para disparar a consulta, não é necessário muitas linhas para isso, o próprio componente ACBrCEP se encarrega do trabalho pesado, no evento OnClick do botão digite a linha a seguir:

Listagem 1: Esta listagem mostra a código do evento OnClick do botão Pesquisar

           
procedure TForm2.btn2Click(Sender: TObject);
begin
    ACBrCEP.BuscarPorCEP(edtConsulta.Text);
end;

Observação: Essa function recebe como parâmetro uma string contendo o CEP da consulta e retorna um inteiro com a quantidade de endereços encontrados, nesse caso vamos passar o componente edtConsulta.

Para finalizarmos temos que codificar a recepção dos resultados da pesquisa, ou seja, quando o WebService retornar o respectivo endereço teremos que capturar esse retorno no evento OnBuscaEfetuada do componente ACBrCEP, esse evento é disparado após a resposta do WebService.

Evento que recebe o retorno da consulta do componente ACBrCEP
Figura 3. Evento que recebe o retorno da consulta do componente ACBrCEP

O componente ACBrCEP retorna o resultado obtido na propriedade Enderecos, é muito difícil mas pode acontecer da consulta retornar mais de um endereço para o mesmo CEP, então nesse caso temos que criar um contador para recuperar os endereços. Nesse exemplo vamos considerar só o primeiro resultado o que seria o correto, caso contrário teríamos que exibir os resultados em um DBGrid.

Listagem 2: Esta listagem mostra a código do evento OnBuscaEfetuada


procedure TForm2.ACBrCEPBuscaEfetuada(Sender: TObject);
var
   i : integer;

begin
    for I := 0 to ACBrCEP.Enderecos.Count -1 do
    begiN
         edtCEP.Text          := ACBrCEP.Enderecos[i].CEP;
         edtLogradouro.Text   := ACBrCEP.Enderecos[i].Logradouro;
         edtComplemento.Text := ACBrCEP.Enderecos[i].Complemento;
         edtCidade.Text       := ACBrCEP.Enderecos[i].Municipio;
         edtUF.Text           := ACBrCEP.Enderecos[i].UF;
         edtBairro.Text       := ACBrCEP.Enderecos[i].Bairro;
         edtTipo.Text         := ACBrCEP.Enderecos[i].Tipo_Logradouro;
    end;
end;

Agora é só testar.

Testando e exibindo o resultado da consulta
Figura 4. Testando e exibindo o resultado da consulta.

Como podemos perceber é muito simples construir uma consulta de CEPs usando o componente ACBrCEP, minha intenção com esse artigo não foi reinventar a roda pois existem várias maneiras de consumir WebServices para consulta de CEP, mas simplesmente mostrar as facilidades que podemos encontrar utilizando esse componente.

Espero que tenham apreciado, com isso finalizo mais um artigo e até a próxima.

Um Abraço.

Confira também