![]() |
Er ist fertig, aber der Fortschrittsbalken nicht?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe einen
![]() Um die Werte abzuspeichern habe ich Record genommen:
Delphi-Quellcode:
Nun überprüfe ich das folgendermaßen:
var Section : array of record
Name : string; // Name der Section var Items : array of record Name : string; // Name des Items Value : string; // Wert des Items end; end;
Delphi-Quellcode:
Der Balken ist nur nicht ganz "voll", aber er macht trotzdem mit dem Code weiter!
procedure TFCheck.BGoClick(Sender: TObject);
var i, j, k, Zeile : Integer; begin {...} PBSearch.Max := High(UIni.FIni.Section); for i := 0 to High(UIni.FIni.Section) do PBSearch.Max := PBSearch.Max + High(UIni.FIni.Section[i].Items); // Sections werden überprüft for i := 0 to High(UIni.FIni.Section) - 1 do begin PBSearch.Position := PBSearch.Position + 1; for j := i + 1 to High(UIni.FIni.Section) do begin if UIni.FIni.Section[i].Name = UIni.FIni.Section[j].Name then LBErrors.Items.Add('Doppelte Section: ' + UIni.FIni.Section[i].Name + ' an Position: ' + IntToStr(i + 1) + ' & ' + IntToSTr(j + 1)); end; for j := 0 to High(UIni.FIni.Section[i].Items) - 1 do begin PBSearch.Position := PBSearch.Position + 1; for k := j + 1 to High(UIni.FIni.Section[i].Items) do if UIni.FIni.Section[i].Items[j].Name = UIni.FIni.Section[i].Items[k].Name then LBErrors.Items.Add('Doppeltes Item: ' + UIni.FIni.Section[i].Items[j].Name + ' in Section ' + UIni.FIni.Section[i].Name + ' an Position: ' + IntToStr(j + 1) + ' & ' + IntToSTr(k + 1)); end; Application.ProcessMessages; end; {...} end; Dies viel mir mit der im Attachment liegenden Datei auf! Wisst ihr, wo der Denkfehler liegt? |
Re: Er ist fertig, aber der Fortschrittsbalken nicht?
Hallo xZise,
Wie belegst du den Min-Wert der ProgressBar. Der sollte in diesem Fall = 1 sein. Sonst ist die Berechnung von Max falsch. Vielleicht sieht es auch nur so aus, als sei die ProgressBar noch nicht voll. Stelle mal die Eigenschaft Smooth auf True und vergleiche das mal. Viele Grüße, pszopp |
Re: Er ist fertig, aber der Fortschrittsbalken nicht?
Zitat:
[edit] Min ist immer 1! [/edit] |
Re: Er ist fertig, aber der Fortschrittsbalken nicht?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe auch XP und er zeigt es richtig an.(siehe Anhang)
Benutzt du denn überhaupt TProgressBar? Hast du ein XPManifest auf dem Formular? |
Re: Er ist fertig, aber der Fortschrittsbalken nicht?
Zitat:
Zitat:
Zitat:
|
Re: Er ist fertig, aber der Fortschrittsbalken nicht?
Hallo xZise,
du überprüfst die Items für i=High(UIni.FIni.Section) nicht, folglich kann der Balken gar nicht komplett gefüllt werden. Die zweite FOR-i-Schleife muß also bis High(...) laufen, die FOR-j-Schleife muß dann allerdings in diesem letzten Durchlauf übersprungen werden. Gruß Hawkeye |
Re: Er ist fertig, aber der Fortschrittsbalken nicht?
Zitat:
|
Re: Er ist fertig, aber der Fortschrittsbalken nicht?
Ich glaube ich weiss was Hawkeye meint:
Delphi-Quellcode:
PBSearch.Max := High(UIni.FIni.Section);
// HIER läufst du von 0 bis High for i := 0 to High(UIni.FIni.Section) do PBSearch.Max := PBSearch.Max + High(UIni.FIni.Section[i].Items); // HIER nur von 0 bis High-1 // Damit fallen einige Items weg und der Wert von Position ist am Ende nicht hoch genug for i := 0 to High(UIni.FIni.Section) - 1 do begin PBSearch.Position := PBSearch.Position + 1; for j := i + 1 to High(UIni.FIni.Section) do begin if UIni.FIni.Section[i].Name = UIni.FIni.Section[j].Name then LBErrors.Items.Add('Doppelte Section: ' + UIni.FIni.Section[i].Name + ' an Position: ' + IntToStr(i + 1) + ' & ' + IntToSTr(j + 1)); end; for j := 0 to High(UIni.FIni.Section[i].Items) - 1 do begin PBSearch.Position := PBSearch.Position + 1; for k := j + 1 to High(UIni.FIni.Section[i].Items) do if UIni.FIni.Section[i].Items[j].Name = UIni.FIni.Section[i].Items[k].Name then LBErrors.Items.Add('Doppeltes Item: ' + UIni.FIni.Section[i].Items[j].Name + ' in Section ' + UIni.FIni.Section[i].Name + ' an Position: ' + IntToStr(j + 1) + ' & ' + IntToSTr(k + 1)); end; Application.ProcessMessages; end; {...} end; |
Re: Er ist fertig, aber der Fortschrittsbalken nicht?
Delphi-Quellcode:
Diese Schleife muß bis High(UIni.FIni.Section) laufen, sonst überprüfst du die Items der letzten Section nicht (in der FOR-j-Schleife).
// Sections werden überprüft
for i := 0 to High(UIni.FIni.Section) - 1 do begin Gruß Hawkeye |
Re: Er ist fertig, aber der Fortschrittsbalken nicht?
Peinlich Peinlich :D HAbe den Fehler gefunden :D
Danke @ all! [edit] GÖTTLICH ^^ Es funzt :D [/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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 by Thomas Breitkreuz