ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Interrompendo um processamento

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
grmaster
Novato
Novato


Registrado: Terça-Feira, 18 de Mai de 2004
Mensagens: 18

MensagemEnviada: Qua Set 26, 2007 3:00 pm    Assunto: Interrompendo um processamento Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
danilozanaga
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 15 de Junho de 2005
Mensagens: 156

MensagemEnviada: Qua Set 26, 2007 3:15 pm    Assunto: Responder com Citação

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:

Código:

Abortou:=True;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
grmaster
Novato
Novato


Registrado: Terça-Feira, 18 de Mai de 2004
Mensagens: 18

MensagemEnviada: Qua Set 26, 2007 4:23 pm    Assunto: Responder com Citação

Olá Danilo,

Excelente idéia!

Obrigado!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB