| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
grmaster Novato

Registrado: Terça-Feira, 18 de Mai de 2004 Mensagens: 18
|
Enviada: Qua Set 26, 2007 3:00 pm Assunto: Interrompendo um processamento |
|
|
Caros amigos,
Espero que alguém possa me ajudar neste problema.
Tenho um Botão em um Form que dispara uma rotina que faz um longo processamento e vai mostrando mensagens para o usuário em um Memo.
Até aí, tudo bem.
O problema é que, como esse processamento pode ser bastante demorado, quero dar a oportunidade para o usuário abortá-lo a qualquer momento através de um Esc ou coisa parecida.
Tentei usar os eventos OnKeyPress e OnKeyDown do Form, mas estes só são disparados após a finalização da rotina.
Agradeço qualquer dica. |
|
| Voltar ao Topo |
|
 |
danilozanaga Aprendiz

Registrado: Quarta-Feira, 15 de Junho de 2005 Mensagens: 156
|
Enviada: Qua Set 26, 2007 3:15 pm Assunto: |
|
|
Crie uma variável de controle (boolean) .
Em meio a sua rotina 'pesada', coloque o seguinte comando:
| Código: |
Application.ProcessMessages;
|
E abaixo dele (ou deles), digite:
| Código: |
If Not Abortou Then
Begin
.
.
.
.
.
.
End Else
Begin
ShowMessage('Operação abortada');
Exit;
End;
|
No click do botão:
|
|
| Voltar ao Topo |
|
 |
grmaster Novato

Registrado: Terça-Feira, 18 de Mai de 2004 Mensagens: 18
|
Enviada: Qua Set 26, 2007 4:23 pm Assunto: |
|
|
Olá Danilo,
Excelente idéia!
Obrigado! |
|
| Voltar ao Topo |
|
 |
|