-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
2. Mai 2010
Ein bissl aufgeräumt und bei sowas wie die SysUtils kann man nun selbst entscheiden, ob sie eingebunden werden sollen oder nicht.
Mir ist grade aufgefallen, daß man unsere Klassen auch nehmen, um ganz leicht nur Dateien zu zählen ... einfach nur keine Callback-Prozeduren übergeben.
Falls sich bei mir kein Fehler mehr versteckt, würde ich das auch mal sagen.
Oder ich behaupte einfach...
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
1. Mai 2010
Du hast natürlich vollkommen Recht.
wurde in Beitrag #5 schonmal geändert :)
Das private Search hatte ich ja gerade aus dem Grund eingeführt, damit man unabhängig "extern" etwas beim Start setzen kann ... nur ist irgendwie dieser rekursive Aufruf wohl vergessen oder nochmals falsch überschrieben wurden. :shock:
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
1. Mai 2010
Och, wetten, daß die Festplattenzugriffe im Verhältnis sehr viel mehr ausbremsen, als soeine kleine Stringoperation, wodurch man das kaum merken wird. :angel2:
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
1. Mai 2010
ExtractFileName und ExtractFilePath
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
1. Mai 2010
Zählen tu ich es wie bei deinem Code.
> via Inc(FCountFiles) im Code
Ja und auf den Wert kann man leicht über dir öffentlichen Property zugreifen:
procedure TMyClass.FindFile(Sender: TFindFiles; Filename: string; const Info: TWin32FindData; var Cancel: Boolean);
begin
Labe11.Caption := IntToStr(Sender.CountFiles);
Labe12.Caption := Filename;
Application.ProcessMessages;
end;
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
1. Mai 2010
Nicht unbedingt.
Sowas würde auch in das Objekt reinpassen, in welchem die aufgerufene Methode liegt. :stupid:
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
1. Mai 2010
Statt die beiden Zähler bau ich mal schnell in der Fünf noch einen "Sender" ein. :-D
Und wie ist das nun mit dem Programme-Verzeichnis? Wird es da nun gefunden oder auch nicht?
PS: Mal debuggen und schauen was bei/nach Auffinden dieses Verzeichnisses passiert.
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
1. Mai 2010
Dein CountFiles, CountDirectories und dazu noch das Property Cancel hab ich in den Beitrag #5 mit eingepflegt.
Aber ich wüßte auch nicht, warum dein eines Verzeichnis übersprungen werden sollte. :gruebel:
Der Code aus Beitrag #5 ließtet dieses doch bestimmt auch nicht auf?
PS: mir ist noch eine Änderung eingefallen, welche ich gemacht hatte.
Ich hatte mal die Property und Funktionen in...
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
1. Mai 2010
Du nutzt aber ein eigenes Exceptionobjekt, welches z.B. die Exceptionbehandlung von Delphi nicht kennt.
Sowas macht sich etwas blöd, wenn dann im Programm dennoch die SysUtils eingebunden wurde.
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
1. Mai 2010
In dem Suchthread eine Exception zu werfen ... ist das nicht etwas unsinnig?
Abgesehn davon, wenn du noch im Hauptthread prüfen könntest, ob das Root-Verzeichnis existiert und da schon um dich wirfst, aber die anderen "Fehler", wie "nix gefunden" und "Userabbruch" kannste natürlich nicht werfen.
PS: Du solltest mal selber spielen.
PSS: Ohne die Exceptionbehandlung, von z.B. der...
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
1. Mai 2010
Die letzen Änderungen waren (wenn ich mich richtig erinnere):
das IgnoreDirectory von NormanNG
Daniels Doku-Wunsch
// Cancel > bricht den gesamten Suchvorgang ab
// IgnoreDirectory > überspringt das Auslesen dieses Verzeichnisses
// und aller seiner Unterverzeichnisse
// Errors (HRESULT) > NO_ERROR = S_OK = 0
// >...
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
1. Mai 2010
Abgesehn davon, daß man kein DirectoryExists benötigt ... wozu auch, wenn das auch FindFirst/FindFirstFile supergut erledigt?
Der Code in Beitrag #5 wurde jetzt aber noch um eine kleine Fehlerbehandlung/-rückmeldung erweitert.
(die #19 hatte ich gestern schon still und heimlich mit reingemacht und die #20 sollte auch beachtet worden sein)
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
30. Apr 2010
In Beitrag #5 mit drinnen.
Hatte zwar überlegt, ob man die beiden sich beeinflussenden Cancel und IgnoreDirectory kombinieren könnte und es dann nur einen Parameter gäbe,
aber nur für diese eine Prozedur einen neuen Enum einzuführen spart nicht wirklich was ein.
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
30. Apr 2010
Nur noch eine kleine Änderung,
if not FCancel and Assigned(FOnDirectoryUp) then
damit OnDirectoryUp nicht aufgerufen wird, wenn in damit OnDirectoryFind abgerochen wurde.
Code hier entfernt und dafür in Beitrag #5 geändert
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
29. Apr 2010
Ohhh, das ist dann aber blöd ... woher soll ich wissen, daß die DP auf solche Änderungen nicht hinweißt. :shock:
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
29. Apr 2010
Joar, aber vielleicht ist es ja für Andere praktisch und es ergibt sich dadurch nichtmal vom Speicher oder der Laufzeit her einen Nachteil, wenn man es dennoch weitergibt, auch wenn es nicht nötig ist.
PS: Hatte oben noch schnell einen Fehler beseitigt.
ständig verschreibt man sich -.-°
-
Forum: Neuen Beitrag zur Code-Library hinzufügen
by himitsu,
29. Apr 2010
Bei den Folders wäre es wohl besser '*' oder '*.*' als Maske zu nehmen.
(sonst klappt es mit dem rekursiven Suchen eventuell nicht wie geplant)
Es wäre auch ganz praktisch, wenn TWin32FindData auch mit in den Event-Prozeduren (TOnFindFile und Co.) verfügbar wäre.
So hätte man da dann auch gleich einige Zusatzdaten zur Verfügung.
(Dateigröße oder einige Datumangaben sind doch oftmals recht...