Ajuda para criar tela

Delphi

01/02/2008

Estou fazendo um assistente de importação de dados.

Quando ele esta importando os dados entra em um loop

for i := 0 to Query.REcordCount - 1 do
begin

    ....
    .....
    ....
    Query.Next;
end;


enquando ele faz o loop, mostra uma outra tela com um progressbar
minha dúvida é o seguinte, na tela q tem o progress vai ter um botão cancelar, como faço para cancelar a importação?

vlw


Luiz_aquino

Luiz_aquino

Curtidas 0

Respostas

Onjahyr

Onjahyr

01/02/2008

// Se a janela que vc disse já está criada, coloque no public da janela que está no loop

...

Public
  Cancelou : Boolean;
...

procedure Form1.ExucutaClick(Sender: TObject);
begin
  Cancelou := False;

  for i := 0 to Query.REcordCount - 1 do 
     begin 
       if Cancelou then
         Break;

         .... 
         ..... 
         .... 

      Query.Next;
    end;
end;

// No botão "Cancelar" (Form2):

procedure ...
begin
  Form1.Cancelou := True;
  Close;
end;




GOSTEI 0
Rodc

Rodc

01/02/2008

No loop você precisa colocar um Application.ProcessMessages() para que o usuário consiga clicar no botão.


GOSTEI 0
POSTAR