![]() |
ProgressBar benutzen, obwohl Ergebnis unbekannt
Einen schönen guten Tag! ich habe folgendes Problem:
Ich hab eine Funktion gefunden, die es mir erlaubt alle Dateien eines Ordners anzeigen zu lassen, auch die, die sich in Unterordnern befinden. Das klappt auch alles wunderbar, doch würde ich gerne, um dieses Programm ein wenig benutzerfreundlicher zu machen eine ProgressBar einbauen, die anzeigt wieviele Prozent die Dateien, die bisher gefunden wurden von der Anzahl der ingsgesamt gefundenen Datein später ausmachen. Das ist soweit alles kein Problem, doch weiß ich nicht wie ich vorher herauskriege wieviel Dateien ich später finden werde.
Delphi-Quellcode:
vielen Dank schonmal für die Hilfe
procedure TForm1.GetFiles(const Path: string);
var SearchRec: TSearchRec; p: string; begin p := path + '*.*'; if FindFirst(p, faAnyFile, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory) = faDirectory then begin if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then GetFiles(Path + SearchRec.Name + '\'); end else Form1.Memo1.Lines.Add(Path + SearchRec.Name); until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; end; |
Re: ProgressBar benutzen, obwohl Ergebnis unbekannt
Moin Smeivel,
wie Du schon selber sagst: Du weisst nicht wieviele es werden. Mach doch lieber einen Aktivitätsbalken, der, z.B., immer hin und her läuft um die Aktivität anzuzeigen. |
Re: ProgressBar benutzen, obwohl Ergebnis unbekannt
du könntest eine Schätzung abgeben. Wenn du beispielsweise direkt auf "c:" 10 Ordner hast kannst du während du den ersten scannst hochrechnen das du ungefähr 10 mal so lange brauchst. Wenn du darin wieder 10 Ordner findest kannst du hochrechnen das in den anderen 9 Ordnern auch wieder jeweils 10 Unterordner sind. Und je weiter du die Ordner gescannt hast destso eine genaueren Schätzwert/Durchschnittswert hast du.
|
Re: ProgressBar benutzen, obwohl Ergebnis unbekannt
Ok also wenn ich das richtig verstanden habe kann man nicht anzeigen wieviele Dateien in einem Ordner sind. Aber was mich dann stutzig macht, ist warum man dann in den eigenschaften eines ordners, bei rechtsklick, dann anzeigen lassen kann, wieviele dateien er beinhaltet.Kann man das irgendwie abrufen?Oder wird das auch nur gescannt? Falls nicht wie erstellt man denn so einen Aktivitätsbalken hab in Delphi keine Möglichkeit gefunden.
|
Re: ProgressBar benutzen, obwohl Ergebnis unbekannt
Genau, wenn Du den Eigenschaftsdialog eines Verzeichnisses aufrufst, dann scannt Windows in dem Augenblick den Inhalt. Das kannst Du bei Großen Verzeichnissen auch sehr schön beobachten. Die Werte für Größe, Größe auf Datenträger und Inhalt (Anzahl Dateien und Verzeichnisse) zählen sich hoch und werden aktualisiert.
|
Re: ProgressBar benutzen, obwohl Ergebnis unbekannt
Zitat:
|
Re: ProgressBar benutzen, obwohl Ergebnis unbekannt
Icxh habe da smal in eine Klasse gepackt, die auch einen Fortschritt anzeigen kann:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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