Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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 !

Compartilhar este post


Link para o post
Compartilhar em outros 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).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.