Mega Code Archive

 
Categories / Delphi / API
 

Creating a delay without a timer

Question: How do I create a delay without using a TTimer component, and without locking up the system? Answer: Here is an example of using a loop that checks the time and calls Application.ProcessMessages to allow Windows messages to be processed during the loops execution. procedure Delay(ms : longint); var TheTime : LongInt; begin TheTime := GetTickCount + ms; while GetTickCount < TheTime do Application.ProcessMessages; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('Start Test'); Delay(2000); ShowMessage('End Test'); end;