Ir para conteúdo
Faça parte da equipe! (2024) ×

Evitar que a aplicação trave ao executar um processo grande


TheLucasFuck
 Compartilhar

Posts Recomendados

Delphi//

 

Olá Pessoal,

 

Já devemos ter precisado executar um comando muito grande e, para ficar mais amigável ao usuário, colocar uma barrinha de progresso, para avisá-lo em que estágio de processamento está.

 

Porém, nos deparamos com um pequeno problema: Nossa aplicação fica travada enquanto executa o comando!! Como resolver isto?

 

Existe um método chamado Application.ProcessMessages; que força a aplicação processas as mensagens do sistema operacional, como por exemplo a exibição correta do form. Com isto, não só o form é visualizado corretamente, mas também nossa barrinha de progresso funciona perfeitamente. :D

 

Vejamos um exemplo simples:

 

Digamos que tenhamos um ADOTable com vários registros abertos e vamos percorrer um a um:

 

 

ADOTable1.First;

while not (ADOTable1.Eof) do

begin

lblStatus.Caption := 'Processando registro...'; // exibimos alguma mensagem

Application.ProcessMessages; // chamados o método que força o SO a desenha a janela

ADOTable1.Next; // pula para o próximo registro da tabela

end;

 

 

 

Pronto. Agora é só você implementar uma barra de progresso e colocar mais algumas perfumarias (objetos que deixam a cara do formulário mais amigável para o usuário) caso seja necessário :)

 

Até a próxima pessoal.

OPEN MINDED

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.