devxlogo

Changing Label Captions in a FOR Loop

Changing Label Captions in a FOR Loop

Question:
I’m trying something like this:

 for i:=0 to 1000 do  label1.caption:='I= '+inttostr(i);

but the loop executed so fast, the label doesn’t display anything until the loop is over.

This relates to a file copy method I’m creating. I want to display the name of the file being copied while a progress bar tracks the progress of the file copy. But the label won’t display the text in the loop!

Answer:
Here’s one thing that’s daunting to many people: Loops execute incredibly fast in Delphi. The only way to slow them down is to use theSleep procedure. Your new code would look like this:

for i:=0 to 1000 do begin  label1.caption:='I= '+inttostr(i);  Sleep(200); //sleep for 200 milliseconds before going on.end;

That’s the only way you can slow the loop down. Otherwise, the loop will finish execution in the blink of an eye.

devx-admin

Share the Post: