Zakasneli odgovor, ali upotrebljiv - sledi:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var atimer: THandle;
alargeint: Int64;
begin
atimer := CreateWaitableTimer(nil, false, 'MyTimer');
if atimer <> 0 then begin
try // vreme ide u 100 ns intervalima (10000000 = 1 sekunda)
// minus znaci relativno vreme ('od sad')
alargeint := -(StrToInt64(Edit1.Text));
SetWaitableTimer(atimer, alargeint, 0, nil, nil, false);
WaitForSingleObject(atimer, infinite);
finally
CloseHandle(atimer);
end;
ShowMessage('Zavrsio je');
end;
end;
Ovo je neverovatno mocna stvar, a reci cu i zasto. Zato sto thread koji ceka na timer NE TROSI procesorsko vreme. Do danas nisam ni ja znao za ovo; hvala za inspiraciju.
Pozdrav
Rajko