[ erekoz @ 02.09.2003. 08:45 ] @

Postoji li u Delfiju funkcija slicna pascalovom Delay, i ako postoji, koja je?

pozdrav Erekoz
[ erekoz @ 02.09.2003. 09:28 ] @

U stvari, meni treba nacin da kazem delfiju da iskulira jedno desetak sekundi pa onda da cita odredjenu datoteku, pa ako neko zna kako to da uradim, samo neka se raspise.

hvala unapred , erekoz
[ goblin @ 02.09.2003. 10:50 ] @
Delay kao komanda ne postoji, ali postoji mnogo nacina da se odradi stvar koja ti treba. Evo ti nekoliko:
1. Postavis tajmer na 1000 i cekas 9. iteraciju
2. kombinacija GetTickCount, Appl...Proc..Mess.. i Sleep (otprilike ovako):
Code:

procedure cekaj(intvl : cardinal);
var start: cardinal;
begin
 start := gettickcount;
 while not ((gettickcount - start) = intvl) do //u milisekundama
  begin
   Application.ProcessMessages;
   Sleep(250); //opet u milisekundama
  end;
end;


3. slicno kao malopre samo sto pozivas Now za trenutno vreme umesto API gettickcount

itd... mislim da je dovoljno :)
[ morlic @ 03.09.2003. 16:53 ] @
Ako koristis goblinov kod moras da budes oprezan sa interfejsom. Kada se zove ProcessMessages onda korisnik moze da klikce po formi sto ti mozda nije pozeljno. Ukoliko ne zelis da korisnik ima tu mogucnost uradi sledece stvari:

Varijanta 1 : Stavi formi Enabled := false pre poziva pauze i Enabled := true posle zavrsetka pauze.

Varijanta 2 : Izbaci ProcessMessages ali onda forma ne odgovara na zahteve za osvezavanje.
[ goblin @ 04.09.2003. 00:38 ] @
Priznajem... zaboravio sam na blokiranje interfejsa... izvinjavam se :)

P.S. Mislim da je bolji izbor (1). Bilo bi glupo da se prozor ne iscrtava...