Buscar

Permitindo cancelar processo demorado

Código

{- Vamos considerar em nosso exemplo que o processamento ocorre na unit do Form1. - Declare, na seção public do Form1, uma variável boolean.}


public;
  Cancelar: boolean; {- Crie um novo form (Form2);

- Coloque um botão neste novo form. Programe o OnClick deste botão conforme abaixo:


  Form1.Cancelar := true; - Na parte onde ocorre o loop do processamento demorado coloque algo como:}



  try
  { Antes de começar o processamento }
  Form2.Caption := 'Processamento demorado...';
  Form2.Show;
  { No início do loop "Cancelar" precisa ser false }
  Cancelar := false;
  { Aqui inicia o loop do processamento demorado }
  while {...} do begin
  { ... Processa algo aqui... }
  { Permite que o programa processe mensagens do Windows }
  Application.ProcessMessages;
  { Se a variável "Cancelar" foi alterada para true... }
  if Cancelar then begin
  ShowMessage('Operação cancelada pelo usuário.');
  Break; { Sai do loop }
  end;
  end;
  finally
  Form2.Close;
  end; {Não se esqueça de que o Form1 precisa usar Form2 e vice-versa. }

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 24/06/03
Por: Felipe Monteiro
Visualizada: 4140 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009