Evitar que a aplicação trave ao executar um processo grande
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.
Vejamos um exemplo simples:
Digamos que tenhamos um TDataSet com vários registros abertos e vamos percorrer um a um:
procedure TSistema.TesteClick(Sender: TObject);begin DataSet.First
lblStatus.Caption := 'Processando registro...'; { exibimos alguma mensagem }while not DataSet.Eof do begin{ chamados o método que força o SO a desenha a janela }Application.ProcessMessages;end;DataSet.Next; { pula para o próximo registro da tabela }end;
0 comentários:
Postar um comentário