Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fortschritt einer for-Schleife anzeigen (https://www.delphipraxis.net/124520-fortschritt-einer-schleife-anzeigen.html)

herklotz 20. Nov 2008 13:30


Fortschritt einer for-Schleife anzeigen
 
Moin moin,

also ich stehe vor folgendem Problem:

Ich habe ein for-Schleife, die bis zu einem hohen Wert zählt, da dies ein Weilchen dauert, wollte ich eine ProgressBar mit dem Fortschritt einfügen, aber wenn ich
Delphi-Quellcode:
for i:=1 to 5000 do begin
  ...
  ProgressBar1.Position := i;
end;
drinstehen habe, bleibt das Fenster natürlich leer und nichts wird angezeigt.
Wie krieg ich jetzt diese Progressbar zum Vorschein, sodass der User sehen kann wo gerade die for-Schleife ist? :mrgreen:

Luckie 20. Nov 2008 13:38

Re: Fortschritt einer for-Schleife anzeigen
 
Du musst der deinem Fenster entweder die Möglichkeit gegeben die Fortschrittsanzeige zu zeichnen, in dem du dem fenster die Möglichkeit gibst die Nachrichtenschleife abzarbeiten. das geht mit Application.Processmessages. Oder du sagts der Fortschrittsanzeige explizit, dass sie sich neu zeichnen soll mit der Metgode Refresh oder Repaint der Fortschrittsanzeige.

herklotz 20. Nov 2008 14:16

Re: Fortschritt einer for-Schleife anzeigen
 
Wie stell ich das jetzt genau an. Bin noch nich sooooo weit mit Delphi.

ProcessBar1.Position := i;
ProcessBar1.Refresh;

oder wie? :glaskugel:

Luckie 20. Nov 2008 14:17

Re: Fortschritt einer for-Schleife anzeigen
 
Zitat:

Zitat von herklotz
Wie stell ich das jetzt genau an. Bin noch nich sooooo weit mit Delphi.

ProcessBar1.Position := i;
ProcessBar1.Refresh;

oder wie? :glaskugel:

Was spricht dagegen, das auszuprobieren?

herklotz 20. Nov 2008 14:22

Re: Fortschritt einer for-Schleife anzeigen
 
Also ich hab es jetzt so ausprobiert:

Delphi-Quellcode:
for i:=1 to 10000 do begin
  ...
  ProgressBar1.Position := i;
  ProgressBar1.Refresh;
end;
und irgendwie funktioniert es nicht wirklich. Also immer noch dasselbe wie vorher.

ATSV 20. Nov 2008 14:33

Re: Fortschritt einer for-Schleife anzeigen
 
wie wäre vor der for-schleife ein Progressbar.Max := 10000? oder steht das schon drin?

herklotz 20. Nov 2008 14:34

Re: Fortschritt einer for-Schleife anzeigen
 
Ja ProgressBar1.Max ist schon drin.

ATSV 20. Nov 2008 14:38

Re: Fortschritt einer for-Schleife anzeigen
 
komisch...
Delphi-Quellcode:
pb1.Position := pb1.Position + 1;
Application.ProcessMessages;
so mach ich das (momentan) in meinem aktuellen projekt funktioniert einwandfrei versuch das mal.

herklotz 20. Nov 2008 14:50

Re: Fortschritt einer for-Schleife anzeigen
 
Ich bin auch blöd :mrgreen:
Ich hab die ProgressBar auf einem Panel, welches ich aus Versehen auf eine GroupBox geschoben habe, die gerade nicht sichtbar war ^^
Naja, vielen Dank es funktioniert jetzt :dp:

Xong 20. Nov 2008 15:16

Re: Fortschritt einer for-Schleife anzeigen
 
Eventuell könnte es noch sinnvoll sein, den Balken nur alle 50-100 Schritte neu zu zeichnen.

LG,
Xong


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:20 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz