Mega Code Archive

 
Categories / Delphi / Examples
 

Im in a loop and my app is not responding. What do I do

Title: I'm in a loop and my app is not responding. What do I do? Problem: You're processing data in a loop and you expect to have any of the following happen: - Response to a mouse-click (on a button or elsewhere). - Draw something on the screen. - Change a label. - Change a mouse pointer. But the program won't respond or do any of the above.(There may be other actions as well...) Solution: Add the line: Application.ProcessMessages; to your program, somewhere in the loop. This will give Windows a chance to process any messages for your application. However, this can/will also slow processing in your loop. If speed is an issue, you can also include a counter and only call ProcessMessages every so many iterations through the loop. Something like this (i is an Integer variable): If i = 100 then begin Application.ProcessMessages; i := 1; end else inc(i);