Parar um loop pressionando uma tecla

 

Existe por exemplo uma opção que é utilizar uma variável global boolean que é alterada no evento OnClick, outra opção, que é a utilizada nesta dica, consiste em ler o estado da tecla no loop, para saber se ela é ou não pressionada:

 

var

  i: integer;

begin

  for i := 0 to 9999999 do

  begin

   Label1.Caption := IntToStr(i);

   {.... corpo principal do loop ...}

   Application.ProcessMessages;

 

   { tecla ESC para o loop }

   if GetKeyState(VK_Escape) and 128=128 then

     break;

  end;

end;