Hm, der Kompiler mag kein "FmUtils".
was soll ich denn als Aufruf in die OnKlick-Prozedur schreiben?
Ich kopier mal die relevanten Quellcode für das bessere Verständnis.
Delphi-Quellcode:
var gcount, gconst: integer;
uses StrUtils;
Meine aus dem Inet geklaute Suche.
Also eig brauche ich keine rekursive Suche. Aber da ich nicht so der Crack in Programmierung bin, hab ich was genommen, was ich ohne größere Mühe einbinden konnte. Denn die ganz einfach Suchfunktion, die Delphi bietet, hat keine Unterverzeichnisse durchsucht bzw. ich wusst nicht, wie ich das anstellen sollte.
Delphi-Quellcode:
procedure GetFilesInDirectory(Directory: String; mzwvar2: String;
List: TStrings;
WithSubDirs, ClearList: Boolean);
procedure ScanDir(const Directory: String);
var
SR: TSearchRec;
begin
screen.Cursor := crHourglass;
if FindFirst(Directory + mzwvar2, faAnyFile and not faDirectory, SR) = 0 then try
repeat
List.Add(Directory + SR.Name);
gcount := gcount + 1;
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
if WithSubDirs then begin
if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try
repeat
if ((SR.attr and faDirectory) = faDirectory) and
(SR.Name <> '.') and (SR.Name <> '..') then
ScanDir(Directory + SR.Name + '\');
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
end;
Screen.Cursor := crDefault;
end;
begin
List.BeginUpdate;
try
if Directory = '' then Exit;
if Directory[Length(Directory)] <> '\' then
Directory := Directory + '\';
ScanDir(Directory);
finally
List.EndUpdate;
end;
end;
Meine OnKlick-Prozdur:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var mzwvar : string;
lcount, highcount : byte;
begin
gcount := 0;
Progressbar1.Max:= Memo1.Lines.Count;
highcount := memo1.Lines.Count;
For lcount := 0 to highcount-1 do
begin
gconst := lcount;
mzwvar := memo1.Lines[lcount];
GetFilesInDirectory(shelltreeview1.SelectedFolder.PathName, mzwvar, Listbox1.Items, True, True);
Progressbar1.Position:= lcount + 1;
label1.Caption := format('Es wurde(n) %d Datei(en) gefunden.',[gcount]);
end;
CopyFiles('C:',memo1.Lines);
end;
Also folgender Code ist bestimmt falsch ... aber ich habe ihn vorläufig in der OnKlick-Prozedur stehen lassen:
CopyFiles('C:',memo1.Lines);
Noch eine Frage @DeddyH: Wofür steht das 'C:' in deiner Aufrufprozedur?
So, schon mal vielen Dank. Ich weiß, es ist immer schlimm, sich mit Anfänger rumzuschlagen. ^^
Schöne Grüße
Eric