Jump to content
Sign in to follow this  
juunr95

ShowModal

Recommended Posts

Olá pessoal. Meu nome é Cláudio.
Bom, eu estou "tentando" desenvolver um programa para Gerenciamento de Colonia de Férias, e como em todo programa de gerenciamento, ele tem um cadastro dos cliente e funcionários e tal.
No formulário de cadastro de novos clientes, eu coloquei um código que, pelo CEP, procura e preenche automaticamente os Edits seguintes com o endereço, cidade, bairro e estado, e fiz o mesmo com o endereço, se a pessoa coloca o endereço, ele preenche automaticamente o CEP...
Mais esse sistema funciona com base em um site, que tem o DB com todos os endereços, então ele faz uma pesquisa em PHP com o idHTTP e as vezes ele demora um pouco pra encontrar as informações, então eu criei um Form com um Label: Buscando CEP...
e gostaria que ele aparece enquanto o código é executado, e depois qe os Edit forem preenchidos o form sumir novamente.
Vocês poderiam me ajudar ?
O Code que busca o endereço é esse !

 

procedure TfrmNovo.Button1Click(Sender: TObject);
var
Consulta: String;
Resposta: TStringStream;
begin
if (Edit1.Text = '') or (Length(Edit1.Text) < 8) or (Length(Edit1.Text) > 8) then
begin
Application.MessageBox('CEP nulo ou inválido.', 'Erro - Aviso do Sistema', mb_iconwarning+mb_ok);
exit;
end;
Resposta := TStringStream.Create('');
TSConsulta := TStringList.Create;
IdHTTP1.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV2';
TSConsulta.Values['&cep'] := Edit1.Text;
TSConsulta.Values['&formato'] := 'xml';
//TSConsulta.Values['&formato'] := 'query_string';
IdHTTP1.Post('http://cep.republicavirtual.com.br/web_cep.php?' TSConsulta, Resposta);
XMLBuscaCEP.Active := True;
XMLBuscaCEP.Encoding := 'iso-8859-1';
XMLBuscaCEP.LoadFromStream(Resposta);
//RichEdit1.Lines.Add(Resposta.DataString);


Edit2.Text := XMLBuscaCEP.DocumentElement.ChildNodes['tipo_logradouro'].NodeValue+' '+XMLBuscaCEP.DocumentElement.ChildNodes['logradouro'].NodeValue;


Edit3.Text := XMLBuscaCEP.DocumentElement.ChildNodes['bairro'].NodeValue;


Edit4.Text := XMLBuscaCEP.DocumentElement.ChildNodes['cidade'].NodeValue;

Edit5.Text := XMLBuscaCEP.DocumentElement.ChildNodes['uf'].NodeValue;
TSConsulta.Free;
Resposta.Free;
XMLBuscaCEP.Active := False;
Edit13.SetFocus;

 

 

Aguardo respostas !

Share this post


Link to post
Share on other sites

O problema de usar o showmodal é que ele troca o foco de execução do form atual para o form chamado... em geral, neste tipo de situação, eu criava um form padrão com um gif animado com um "por favor aguarde" e dava um show neste form no início do processamento e um close nele após o término. Pelo menos visualmente o usuário não ficará sem informação... outra alternativa seria por um statusbar na sua aplicação e ir informando ao usuário por mensagens o status atual do processamento na própria tela (talvez usando junto um progressbar).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.