Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Alle Verzeichnisse in TTreeView - schnellere Lösung? (https://www.delphipraxis.net/76931-alle-verzeichnisse-ttreeview-schnellere-loesung.html)

Luckie 12. Sep 2006 14:16

Re: Alle Verzeichnisse in TTreeView - schnellere Lösung?
 
Die Komponenten befinden sich auf dem Seitenreiter "Beispiele".

Sicho 12. Sep 2006 14:22

Re: Alle Verzeichnisse in TTreeView - schnellere Lösung?
 
Das wäre ja dann in meinem englischsprachigem Delphi "Samples" - aber da ist sie leider nicht zu finden

Steve 12. Sep 2006 14:51

Re: Alle Verzeichnisse in TTreeView - schnellere Lösung?
 
Zitat:

Zitat von Sicho
hm..das Problem ist dass ich die entsprechenden Parameter ja dann (beim Aufruf des Events des TTreeview On Click) nicht mehr zur Verfügung habe... bzw. ich mit diesen kryptischen Variablennamen des UrsprungsCodes nicht viel anfangen kann, da ich nicht weiß, was er meint =/

Doch, die hast Du :mrgreen:
Du kannst Dir doch aus den bereits vorhandenen Knoten den Pfad zusammenbasteln:
Delphi-Quellcode:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
  txt : String;
  tn : TTreeNode;
begin
  { Add subitems only once }
  IF NOT Node.HasChildren THEN
  BEGIN
    txt := '';
    tn := Node;
    REPEAT
      { Get path }
      txt := tn.Text + '\' + txt;
      tn := tn.Parent;
    UNTIL (tn=NIL);
    GetDirs(txt,TreeView1,Node);
  END;
END;
Dabei ist natürlich wichtig, dass der gesamte Pfad inkl. Laufwerksbuchstabe im TreeView steht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  { Scan C:\ and create first node "C:\" in TreeView }
  GetDirs('C:\',TreeView1,TreeView1.Items.Add(NIL,'C:\'));
end;
PS: ADirectory, Start und Tree sind imho nicht wirklich "kryptische"Bezeichner ;)


Gruß
Stephan :dance:

Sicho 12. Sep 2006 15:06

Re: Alle Verzeichnisse in TTreeView - schnellere Lösung?
 
Danke jetzt klappt's um einiges besser :)

btw hatte mich auch an der vorgeschlagenen TVirtualTreeView versucht, aber da klappte irgendwie das nicht so wie ich es wollte ^^

hsg 13. Sep 2006 08:30

Re: Alle Verzeichnisse in TTreeView - schnellere Lösung?
 
Was hat bei TVirtualTreeView nicht funktioniert?

Hast du die Komponente TVirtualExplorerTreeView gefunden und benutzt? (wenn nicht: google mal danach)
der Rest ist dann easy:
Delphi-Quellcode:
 
stvDir.RootFolder := rfDesktop;
cTmp              := oIni.ReadString('Options','StartDir','');
if cTmp <> '' then begin
  stvDir.BrowseTo(cTmp,True,True,True,false);
end;
und schon steht der TreeView auf das in CTmp angegebene Verzeichnis :-D
Gruss
Jörg


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:51 Uhr.
Seite 2 von 2     12   

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