INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Jobs

Graphical User Interface

I'm in a loop and my app is not responding. What do I do? by hilfy
Posted: 3 Mar 04

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);

Back to Embarcadero: Delphi FAQ Index
Back to Embarcadero: Delphi Forum

My Archive

Resources

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close