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 951 korisnika na forumu :: 41 registrovanih, 4 sakrivenih i 906 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: Andy, antonije64, Banovo Brdo, Ben Roj, Bob.Rock, bojank, BORUTUS, BOXRR, BWG, dinamik, Dragan1998, draggan, gregorxix, K2, kaskadija, Kobrim, laki_bb, Leonov, m0nstrum_, Malahit, mačković, moldway, N.e.m.a.nj.a., nemkea71, novator, opt1, pacika, Prečanin30, raster12, RED4G-304, rikirubio, Savantije, shlauf, shone34, smerch, su27, tajvankanasta, Teodorasim, ulogovan, zgoljo, Đurđevdan