Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

I'm in a loop and my app is not responding. What do I do?

Graphical User Interface

I'm in a loop and my app is not responding. What do I do?

by  hilfy  Posted    (Edited  )
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);
Register to rate this FAQ  : BAD 1 2 3 4 5 6 7 8 9 10 GOOD
Please Note: 1 is Bad, 10 is Good :-)

Part and Inventory Search

Back
Top