Für solche Fälle nutze ich:
Code: Alles auswählen
Statusbar: TPanel;
edtStatusBar: TEdit;
ProgressBar: TProgressBar;
...
ProgressBar.Position := 0;
ProgressBar.Max := iMax;
...Loop...
ProgressBar.Position := iAct;
edtStatusBar.Text := info;
edtStatusBar.Repaint;
Application.ProcessMessages;
...Loop End...
und das natürlich am besten in einem Thread!
ODER
Ich nutze eine Konsolen-Anwendung oder Daemon im Hintergrund für mich erscheint es nicht sinnvoll eine Auswertung (z.B. was bei mir häufig vorkommt Logfile-Auswertung) in einer GUI-Anwendung auszuführen! Eine GUI-Anwendung verbraucht viel zu viel Zeit fürs Repaint etc., mit Write(Ln) gebe ich dann zwischendurch an was im Augenblick passiert, ob auf Konsole oder in eine Logging Datei!

Ach so ja, ich stelle seit ca. 2 Jahren so langsam all meine Projekte auf Free Pascal / Lazarus um, lediglich das erzeugen von Active-X Objekten passiert noch unter Delphi (hoffentlich das auch nicht mehr lange) und Aktualisierung uralter Software wo eine Portierung hoffentlich keinen Sinn mehr macht, also der Schritt nach Delphi wäre für mich ein Schritt zurück, besonders unter dem Gesichtspunkt der Flexibilität!