nee, mehrere Masken kann man leider nicht angeben, also dann isses schon OK so
ich hab das jetzt bei meinem SearchSameFiles praktisch in etwa so gelöst:
Delphi-Quellcode:
uses MatchTextUnit;
procedure TForm1.ReadFiles(const Path, Mask: String; List: TStrings);
var
FileInfo: TSearchRec;
begin
List.BeginUpdate;
try
List.Clear;
if FindFirst(Path + '*.*', faAnyFile and not faDirectory, FileInfo) = 0 then begin
repeat
if MatchText(Mask, FileInfo.Name) then
List.Items.Add(FileInfo.Name);
until FindNext(FileInfo) <> 0;
FindClose(FileInfo);
end;
finally
List.EndUpdate;
end;
end;
>
MatchText
Delphi-Quellcode:
ReadFiles('C:\', '*.txt', LBFile);
ReadFiles('C:\Path\', '*.txt|*.doc', LBFile);
PS: es macht sich immer gut, wenn du
GUI und Logik etwas trennst
z.B. spätere Umbauten sind dann einfacher und man kann den Code auch mal wiederverwenden
Bezüglich deiner ShellTreeView gibt es das Problem, daß sie immer wohl angezeigt wird.
Bei mir war es damals so, daß ich den OpenDirectoryDialog statisch aufgerufen hatte, vorher mir ansehn konnte, welche Handles vorhanden sind und nachher im Vergleich prüfen konnte, welche Handles neu waren.
Und da ich wußte, daß an anderen Stellen sich keine
Handle währenddessen ändern konnten und ich wußte daß nix schlimmes passiert, wenn ich diese Handles nun selber bereinige, konnte ich die Unterschiede dann einfach selber beheben.