Hallo,
ich habe folgendes Problem. Ich hab mir ein Programm geschrieben, bei dem ich mir einen Pfad auswähle mittels SelectDirectory und mir dann entweder alle Datein oder nur welche mit bestimmter Endung zählen lasse und mir den Pfad dieser dann merke. Dieser Teil funktioniert auch schon super. (Hab des halt über diese hier weit verbreitete Variante mit FindFirst gemacht).
Da ich aber auch sehr große Verzeichnisse durchsuchen muss/will, wollte ich mir ausgeben lassen wie viele Dateien er schon durchsucht, bzw. gefunden hat und in welchem Verzeichnis er gerade ist. Dazu hab ich mir Edit-Fenster gezeichnet in denen ich diese Werte anzeigen lassen will.
Hier schon mal der Code für die Suchroutine, gestarte wird diese über eine ButtonClick:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| procedure TForm1.GetFilesInDirectory(ADirectory: string; AMask: String; AList: TStrings; ARekursiv: Boolean); var SR: TSearchRec; begin if (ADirectory<>'') and (ADirectory[length(ADirectory)]<>'\') then ADirectory:=ADirectory+'\';
if (FindFirst(ADirectory+AMask,faAnyFile,SR)=0) then begin repeat if (SR.Name<>'.') and (SR.Name<>'..') and (SR.Attr<>faDirectory) then AList.Add(ADirectory+SR.Name); Pfad.Text := ADirectory+SR.Name; Anzahl.Text := IntToStr(alist.Count); until FindNext(SR)<>0; FindClose(SR);
end;
if ARekursiv then if (FindFirst(ADirectory+'*.*',faDirectory,SR)=0) then begin repeat if (SR.Name<>'.') and (SR.Name<>'..') then GetFilesInDirectory(ADirectory+SR.Name,AMask,AList,True); until FindNext(SR)<>0; FindClose(SR); end; end; |
Mit diesen Zeilen möchte ich diese Ausgabe machen.
Delphi-Quelltext
1: 2:
| Pfad.Text := ADirectory+SR.Name; Anzahl.Text := IntToStr(alist.Count); |
Jetzt hab ich aber das Problem das mir diese Felder nicht während des Suchvorgangs aktualisiert werden, sondern immer erst ganz zum Schluss. Was ja dann überflüssig wäre, da ich am Schluss ja sowieso das Ergebniss vorliegen hab.
Also hier die Frage ob es eine Möglichkeit gibt, sich diese Werte während des Suchvorgangs aktuell anzeigen zu lassen.
MfG Jack