![]() |
AW: Funktion erweitern
Oder einfach diesen Parameter nach hinten verlagern.
Bei Verwendung einer Maske wird es schwieriger, denn die Verzeichnisse dürfen ja nicht über die Maskte gesucht werden. Also muß man entweder selber den Dateinamen mit der Maske vergleichen oder man sucht in zwei Schritten.
Delphi-Quellcode:
procedure TForm1.scan(path: string; Maske:String;DateiendungAnzeigen:Boolean=true;parent:TTreeNode=nil);
var SR: TSearchRec; s:string; begin path := IncludeTrailingPathDelimiter(path); if FindFirst(path + '*', faAnyFile, SR) = 0 then try repeat if (SR.Name <> '.') and (SR.Name <> '..') and (SR.Attr and faDirectory <> 0) then scan(path + SR.Name, Maske, DateiendungAnzeigen, TreeView1.Items.AddChild(parent, SR.Name)); until FindNext(SR) <> 0; finally FindClose(SR); end; if FindFirst(path + Maske, faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory = 0 then begin s := SR.Name; if not DateiendungAnzeigen then s := ChangeFileExt(s, ''); TreeView1.Items.AddChild(parent, S); end; until FindNext(SR) <> 0; finally FindClose(SR); end; end; |
AW: Funktion erweitern
Hab das nil weggelassen und hat geklappt. Aber leider klappt der Filter immer noch nicht. Bei den Unterordnern klappt die Maske nicht mehr.
|
AW: Funktion erweitern
Maske: siehe meine letzer editierter Beitrag.
|
AW: Funktion erweitern
Hat funktioniert. Hat aber jemand noch ne Idee wie ich den Pfad wieder bekomme???
Hab des so gemacht:
Delphi-Quellcode:
Aber das klappt ja bei den Unterordnern nicht mehr. Jemand ne Idee???
Dateipfad := Hauptpfad + TreeView1.Selected.Text
|
AW: Funktion erweitern
Entweder su speicherst dir den kompletten Pfad in den Node.Data
oder du setzt dir den Pfad zusammen. in etwa so:
Delphi-Quellcode:
Dateipfad := '';
Node := TreeView1.Selected; while Assigned(Node) do begin Dateipfad := Node.Text + '\' + Dateipfad; Node := Node.Parent; end; Dateipfad := IncludeTrailingPathDelimiter(Hauptpfad) + ExcludeTrailingPathDelimiter(Dateipfad); |
AW: Funktion erweitern
hat jemand ne Idee wie ich dort den Hauptnode ignorieren kann???
|
AW: Funktion erweitern
Ungefähr so:
Delphi-Quellcode:
Dateipfad := '';
Node := TreeView1.Selected; while Assigned(Node) do begin if Node.Parent<>nil then begin Dateipfad := Node.Text + '\' + Dateipfad; Node := Node.Parent; end; end; Dateipfad := IncludeTrailingPathDelimiter(Hauptpfad) + ExcludeTrailingPathDelimiter(Dateipfad); |
AW: Funktion erweitern
das funktioniert leider nicht. das programm hängt sich dort auf :(
|
AW: Funktion erweitern
Ahh, Tatsache, mach es ohne das begin end;
Also so:
Delphi-Quellcode:
Dateipfad := '';
Node := TreeView1.Selected; while Assigned(Node) do begin if Node.Parent<>nil then Dateipfad := Node.Text + '\' + Dateipfad; Node := Node.Parent; end; Dateipfad := IncludeTrailingPathDelimiter(Hauptpfad) + ExcludeTrailingPathDelimiter(Dateipfad); |
AW: Funktion erweitern
Jetzt funktioniert alles. Nun kann ich mein Programm erweitern. :stupid:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 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