provera akcije u toku izvršenja petlje

provera akcije u toku izvršenja petlje

offline
  • Pridružio: 12 Nov 2006
  • Poruke: 52

Zanima me kako mogu da u toku izvršenja neke duge petlje (for, while) privremeno obustavim izvršenje programa i proverim da li je bilo akcije od strane korisnika?

Primer: igra moj broj u "slagalici". Hoću da se u petlji menjaju brojevi sve dok korisnik ne pritisne dugme "stop".

Nešto oblika

randomize:
while true do
begin
lbl1.Caption:=Format('%.1d',[RandomRange(1,9)]);
lbl1.Update;

// sada da proverimo da li je korisnik kliknuo na dugme 'Stop' i izadjemo iz petlje.

Break;

end;



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Daj konkretan primer, posto mi padaju na pamet vise solucija, a sve zavisi od toga sta zelis da postignes.
Mozes da koristis threadove, za neke stvari mozes i application.processmessages itd.



offline
  • srdjos  Male
  • Zaslužni građanin
  • Pridružio: 27 Sep 2005
  • Poruke: 678

za početak, možeš to da uradiš preko obične promenjive
recimo boolean tipa, deklarišeš je i postaviš njenu
vrednost na false

pa onda:

procedure TNekaForma.Button1Click(Sender: TObject); begin   pressed := True; end;

i kasnije u petlji
  randomize:      while true do  begin     lbl1.Caption:=Format('%.1d',[RandomRange(1,9)]);     lbl1.Update; // sada da proverimo da li je korisnik kliknuo na dugme 'Stop' i izadjemo     if pressed then       Break;   end;

u kombinaciji sa Application.ProcessMessages

offline
  • Pridružio: 12 Nov 2006
  • Poruke: 52

Hvala , nedostajao mi je samo Application.ProcessMessages

Ko je trenutno na forumu
 

Ukupno su 522 korisnika na forumu :: 29 registrovanih, 3 sakrivenih i 490 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: amaterSRB, babaroga, Cirkon, cvrle312, dac, Deneb, Doca, dragoljub11987, dragon986, dragonserbia, gagidjuric, havoc995, ILGromovnik, indja, ivicasimo, Joja, kNikS, Leonardo, MarKhan, mercedesamg, MrNo, Recce, rus1974, segax1, stalker, stegonosa, trajkoni018, Vlada1389, YU-UKI