Fórum Loop While...do #218082
03/03/2004
0
Tenho que executar uma rotina em até 60 segundos depois deste tempo
ela dara uma menssagem.
Então o que eu fiz.
declarei uma variavel private
cont : integer;
no oncreate do form
cont:=0;
com um timer em 1000
cont:=cont +1;
no botão para executar a rotina
while rotina<>doqueeuqero do
begin
aqui faz o que eu preciso;
* //abaixo falo o que é isso
if cont=60 then
showmessage(´Tempo esgotado´)
exit;
else
end;
OBS quando eu coloco um showmessage(inttostr(cont)) onde está o *
ele vai contando até 60 e funciona mas senão nao funciona;
Muito Obrigado
[b:e8498cdc25][color=red:e8498cdc25]Removido: ´Urgente ´ (AZ)[/color:e8498cdc25][/b:e8498cdc25]
Estudante
Curtir tópico
+ 0Posts
04/03/2004
Beppe
Uma global(AindaValido: Boolean) indica a situação. Inicialize-a, sempre e onde precisar, com True. O timer agirá agora só em 60 segundos. No OnTimer, AindaValido recebe False. E ao invés de manter a variável cont, verifique o valor de AindaValido.
Gostei + 0
04/03/2004
Fabio.hc
if cont=60 then
Por este:
if cont >= 60 then
Porque a variavel cont é sempre incrementada e não para no valor 60. Quando vc clica no botão o valor de cont pode ser maior de 60.
Gostei + 0
04/03/2004
Fred
Begin ===> coloque isso
showmessage(´Tempo esgotado´)
exit;
End; ===>e isso
Gostei + 0
04/03/2004
Ggean
var//global
Continua:boolean=true;
no Ontimer//com interval=60000
begin
continua:=false;
application.processmessages;
end;
no loop;
while minha condicao do
begin
Application.processmessages;
if continua then
begin
meus comandos
end
else
begin
showmessage(´tempo esgotado´);
Exit;
end;
end;
Pelo q entendi é algo [b:35536ea9e5]marrom[/b:35536ea9e5]
[color=blue:35536ea9e5][b:35536ea9e5]marromenos[/b:35536ea9e5][/color:35536ea9e5] assim.
Um abraco!!!! gcarlos.alves@bol.com.br
Gostei + 0
05/03/2004
Estudante
Valeu!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)