AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Progressbar läuft erst ab dem 2. Durchlauf
Thema durchsuchen
Ansicht
Themen-Optionen

Progressbar läuft erst ab dem 2. Durchlauf

Ein Thema von G4schi · begonnen am 5. Okt 2017 · letzter Beitrag vom 6. Okt 2017
Antwort Antwort
G4schi

Registriert seit: 23. Aug 2017
17 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Progressbar läuft erst ab dem 2. Durchlauf

  Alt 5. Okt 2017, 15:27
Hallo,

ich habe ein Problem mit meiner ProgressBar.
Delphi-Quellcode:
procedure THauptfenster.btn_stringlist_einlesenClick(Sender: TObject);
var StrList1:TStringList;
    i,pb_iZaehler:Integer;
begin
    pb_einlesen.Visible := True;
    pb_einlesen.Max := length(aDaten);
    pb_iZaehler:=0;

    StrList1:=TStringList.Create;
    try
      StrList1.LoadFromFile(Path_to_Messwerte + 'messwerte.csv');
      //Dezimaltrennzeichen wird geändern
      FormatSettings.DecimalSeparator:=',';
      for i:=1 to StrList1.Count -1 do
      begin
          //Delimiter für die StrList1
          StrList1.Delimiter:=#9 ;
          StrList1.StrictDelimiter := True;
          delimited_string(StrList1[i]);

          pb_einlesen.Position := i;
          inc(pb_iZaehler);

          if pb_iZaehler = 15 then
          begin
            pb_iZaehler := 0;
            Application.ProcessMessages;
          end;
        end;
      //Dezimaltrennzeichen wird wieder zurück geändert
      FormatSettings.DecimalSeparator:='.';
    finally
      StrList1.Free;
    end;
    pb_einlesen.Visible := False;
end;
Beim Debuggen bemerke ich, dass pb_einlesen.Position keinen neuen Wert zugewiesen kriegt.
In der Grafik verändert sich auch nichts.
Sollte ich aber stoppen und wieder fortsetzen, verläuft die Wertzuweisung problemlos.
In der Grafik ist die ProgressBar schon durchlaufen, obwohl der Prozess noch andauert.


Woran kann dies liegen?

Geändert von G4schi ( 5. Okt 2017 um 15:42 Uhr)
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#2

AW: Progressbar läuft erst ab dem 2. Durchlauf

  Alt 5. Okt 2017, 17:48
??? warum anfangs:

pb_einlesen.Max := length(aDaten);



=> ??? besser:

pb_einlesen.Max:=StrList1.Count -1;
for i:=1 to StrList1.Count -1 do
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#3

AW: Progressbar läuft erst ab dem 2. Durchlauf

  Alt 5. Okt 2017, 18:31
Wenn dann wohl eher pb_einlesen.Max := StrList1.Count; Und warum beginnt die for-Schleife bei 1 statt 0?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: Progressbar läuft erst ab dem 2. Durchlauf

  Alt 5. Okt 2017, 18:49
Ist schon ok, wie vorgesehen, CSV-Dateien haben in der Regel in der 1. Teile eine "Überschrift", eine Auflistung der Spalten ...

Von daher ist es ok, wenn man diese Zeile überliest, da sie keine verwertbaren Daten enthält.
  Mit Zitat antworten Zitat
Towmuz

Registriert seit: 21. Sep 2016
Ort: Minden
127 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: Progressbar läuft erst ab dem 2. Durchlauf

  Alt 5. Okt 2017, 19:07
Dir wäre wahrscheinlich geholfen, wenn du das in einen Thread packen würdest
Thomas
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#6

AW: Progressbar läuft erst ab dem 2. Durchlauf

  Alt 5. Okt 2017, 19:58
Oder das Application.ProcessMessages; in jedem Schleifendurchgang aufrufen.
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: Progressbar läuft erst ab dem 2. Durchlauf

  Alt 6. Okt 2017, 06:17
Da war doch noch so ein "Windows Feature"?

Setz mal erst einen Step weiter und sofort danach zurück

Delphi-Quellcode:
pb_einlesen.Position := i+1;
pb_einlesen.Position := i;
Damit umgehst Du die optische Verzögerung die Windows da reinbringt!

Ciao
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:31 Uhr.
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