Sair do loop

Delphi

15/07/2004

Eu entou fazendo um programa que fica fazendo loop
exemplo

for i:=0 to 5000000000 do
begin
sleep(1000); // pra o processamento durante 1 segundo
beep;
end;


Como eu faço para parar esse loop?
:(
Alguem me ajude!!!!!!!!!!
agradeço desde já.


Nmk

Nmk

Curtidas 0

Respostas

Macario

Macario

15/07/2004

Ola programador, bom dia.
for i:=0 to 5000000000 do begin sleep(1000); // pra o processamento durante 1 segundo beep; //por exemplo if i > 50000 then [color=red:a86746856e] break[/color:a86746856e];//comando para sair do for end;



espero ter ajudado


GOSTEI 0
Nmk

Nmk

15/07/2004

Eu ja tentei o comando break mas não funcionou
como seria para apertar a tecla esc para parar o for?




Ola programador, bom dia. [quote:714a5e2e9c] for i:=0 to 5000000000 do begin sleep(1000); // pra o processamento durante 1 segundo beep; //por exemplo if i > 50000 then [color=red:714a5e2e9c] break[/color:714a5e2e9c];//comando para sair do for end;



espero ter ajudado[/quote:714a5e2e9c]


GOSTEI 0
Beppe

Beppe

15/07/2004

1) Declare a var ApertouESC: Boolean no private do form
2) No OnKeyDown do form, bote if Key = VK_ESC then ApertouESC := True;
3) Para checar a tecla no loop, use if ApertouESC then Break;

Lembre-se de iniciar ApertouESC como False antes do loop, e chamar Application.ProcessMessages, no início do loop.


GOSTEI 0
Djjunior

Djjunior

15/07/2004

não tenho certeza mas, creio que para que o sistema possa processar as interações com teclado vc teria que colocar algo do tipo:

Application.ProcessMessages

Dentro do seu loop, se não o processador só vai verificar o OnKeyDown do form (e outras interações) depois de terminar todo o processamento do loop.


GOSTEI 0
Rômulo Barros

Rômulo Barros

15/07/2004

não tenho certeza mas, creio que para que o sistema possa processar as interações com teclado vc teria que colocar algo do tipo: Application.ProcessMessages Dentro do seu loop, se não o processador só vai verificar o OnKeyDown do form (e outras interações) depois de terminar todo o processamento do loop.


Perfeito. Dentro do seu loop vc terá que adicionar a linha de código citada pelo colega djjunior (application.ProcessMessages) .. .. .. Daí por diante, é só seguir os conselhos do amigo beep. :wink:


GOSTEI 0
Nmk

Nmk

15/07/2004

Valeu galera deu certo muito obrigado pela força!!!!!!!!!!!!!1


GOSTEI 0
POSTAR