Não é a linguagem de programação que define o programador, mas sim sua lógica

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