![]() |
Statusbar - Fortschritt ausgeben
Hi,
wie ja einige wissen bau ich gerade an einem Programm welches Textdateien aus den Zeilen einer Tabelle erzeugt. Das Programm an sich funktioniert. Nun möchte ich noch einen kleinen optischen Effekt hinzufügen (ich weiß ist Spielerei ^^): In der Statusbar soll der Fortschritt angezeigt werden: OK lassen wir die Berechnung außen vor. Mein Programm läuft in einer While-Schleife (solange Memofeld mehr Zeilen als 0 enthält läuft die Schleife, vorm Neustart der Schleife lösche ich immer die erste Zeile). Vor dem Neustart der Schleife soll der Status in der Statusbar angezeigt werden. Habe hierzu einfach mal einen Platzhalter "Test" genommen + Sleep(200) (Das Programm läuft sonsts innerhalb von 0,5 Sekunden durch ^^). nur leider wird der "Test" erst ganz am Ende des Programms/Schleife in der Statusbar angezeigt, also dann wenn das Programm fertig ist...:
Code:
habt ihr eine Idee woran das liegen kann?sleep(200); StatusBar1.Panels[0].Text:='Test'; Funktioniert das überhaupt wie ich mir das vorstelle? Sollte ich das über eine Funktion machen? Grüße! |
AW: Statusbar - Fortschritt ausgeben
Hi,
so müsste es gehen:
Delphi-Quellcode:
Grüße
sleep(200);
StatusBar1.Panels[0].Text:='Test'; Application.ProcessMessages; TKanne |
AW: Statusbar - Fortschritt ausgeben
Du könntest einmal
Delphi-Quellcode:
versuchen.
StatusBar1.Panels[0].Refresh;
Alternativ könnte man auch eine ProgressBar für die Fortschrittsanzeige nutzen. |
AW: Statusbar - Fortschritt ausgeben
Hi,
cool danke euch. probier das glatt morgen früh gleich aus :) |
AW: Statusbar - Fortschritt ausgeben
Wobei eine solche Fortschrittsanzeige den Prozess deutlich verlangsamen kann. Deshalb macht es wenig Sinn eine Operation, die sonst in einem Bruchteil einer Sekunde durchläuft alleine durch die Statusanzeige ggf. um Sekunden zu verlängern.
Um das zu verhindern kannst du z.B. nur alle 100 oder 1000 Einträge oder so den Status aktualisieren, je nachdem wie lange die einzelnen Operationen dauern. |
AW: Statusbar - Fortschritt ausgeben
Hi,
danke für den Einwand. Denke aber nicht, dass dies für mich eine Rolle spielt. Im höchstfall geht es hier um 100 Zeilen... So dass sich das in Grenzen hält. Grüße! Ansonsten hat:
Code:
geklappt
Application.ProcessMessages;
Code:
klappt leider nicht, .Refresh gibts bei mir nicht (D7).
StatusBar1.Panels[0].Refresh;
Grüße! |
AW: Statusbar - Fortschritt ausgeben
Zitat:
Delphi-Quellcode:
.
Update
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz