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 936 korisnika na forumu :: 45 registrovanih, 3 sakrivenih i 888 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Sale, A.R.Chafee.Jr., aca018, aljosa7, Andrija357, Apok, Bane san, bankulen, bojank, bojanM84, boracbl1389, BSD, celik, cenejac111, djboj, dozorni, Dragan Smiljanić, dragon986, Dzoni70, elenemste, Georgius, havoc995, Hektor, ikan, ILGromovnik, kovinacc, Krusarac, kunktator, kybonacci, LUDI, Mercury, miodrag, Misirac, nikolapetkovic, pavlo, proka89, renoje2, Sale.S, samsung, Sirius, ssekir75, time, vladas87, vlvl, VP3987