AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Ordner in treeview/ listview ausgeben
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner in treeview/ listview ausgeben

Ein Thema von Matthis · begonnen am 3. Jun 2004 · letzter Beitrag vom 3. Dez 2004
Antwort Antwort
Matthis

Registriert seit: 30. Jun 2003
Ort: Reichenbach
6 Beiträge
 
Delphi 2005 Personal
 
#1

Ordner in treeview/ listview ausgeben

  Alt 3. Jun 2004, 18:45
Hallo,

habe ein problem mit Treeview/ Listview. Ich gebe in einem edit- feld ein Verzeichnis an und möchte dann das das komplette verzeichnis mit unterodner und datein im Treeview/ Listview aus gebenen wird. Wie kann ich das Anstellen?
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#2

Re: Ordner in treeview/ listview ausgeben

  Alt 3. Jun 2004, 19:33
Schau dir mal [cl="Verzeichnisse nach Dateien durchsuchen"]Verzeichnisse nach Dateien durchsuchen[/cl] an!
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#3

Re: Ordner in treeview/ listview ausgeben

  Alt 3. Jun 2004, 19:35


Schau Dir sonst mal auch noch TShellTreeView und TShellListView an - wenn es die in D5 schon mit hat.

mfg Tobias
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: Ordner in treeview/ listview ausgeben

  Alt 3. Jun 2004, 20:32
Gibt´s erst ab D6. Die Alternative wären die entsprechenden Interfaces von Microsoft, die auch der Explorer selbst nutzt. Damit kann man das auch machen, und IMHO nutzen Shell-Tree- und -List-View intern auch nichts anderes.
  Mit Zitat antworten Zitat
Markus K.

Registriert seit: 26. Jan 2004
Ort: Halle
346 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Ordner in treeview/ listview ausgeben

  Alt 3. Jun 2004, 21:34
Hallo Matthis,
hier ist eine Lösung von mir, welche du noch deinen Ansprüchen anpassen musst.
Delphi-Quellcode:
  public
    { Public-Deklarationen }
    Procedure BaumErzeugen(TreeNode:TTreeNode);
    Procedure BaumErstellen(Ordner,Wurzel:String);
    Function VerzeichnisErmitteln(Node:TTreeNode):string;
  end;

var
  Form1: TForm1;
  Wurzel: String='C:\';

implementation

{$R *.dfm}

procedure TForm1.BaumErstellen(Ordner,Wurzel:String);
var TreeNode:TTreeNode;
begin
     TreeView1.Items.Clear;
     TreeNode:=TreeView1.Items.AddChild(nil,Ordner);
     TreeView1.Items.AddChild(TreeNode,'dummy');
end;

procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
begin
     TreeView1.Items.BeginUpdate;
     Node.DeleteChildren;
     BaumErzeugen(Node);
     TreeView1.Items.EndUpdate;
end;

Procedure TForm1.BaumErzeugen(TreeNode:TTreeNode);
var Pfad:String;
    Suche:TSearchRec;
    TNode:TTreeNode;
begin
     if TreeNode=nil then Exit;
     Pfad:=Wurzel+VerzeichnisErmitteln(TreeNode);
     if FindFirst(Pfad+'*.*',faDirectory,Suche) = 0 then
     repeat if ((Suche.Attr and faDirectory)=faDirectory) and (Suche.Name<>'.') and (Suche.Name<>'..')
            then begin
                 TNode:=TreeView1.Items.AddChild(TreeNode,Suche.Name);
                 TreeView1.Items.AddChild(TNode,'dummy');
                 end
            else
            if Suche.Name[1] <> '.'
            then TNode:=TreeView1.Items.AddChild(TreeNode,Suche.Name);
     until FindNext(Suche)<>0;
     FindClose(Suche);
end;

Function TForm1.VerzeichnisErmitteln(Node:TTreeNode):String;
var S:String;
    TreeNode:TTreeNode;
begin
     Result:='';
     if Node=nil then Exit;
     S:=Node.Text;
     TreeNode:=Node;
     while TreeNode.Parent<>nil do
     begin
          TreeNode:=TreeNode.Parent;
          S:=TreeNode.Text+'\'+S;
     end;
     Result:=S+'\';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
     BaumErstellen('Windows',Wurzel);
end;
Der Code erstellt einen Verzeichnisbaum in der TreeView-Komponente, dabei gibt der String Ordner den Ordner an, welcher angezeigt werden soll, und Wurzel den Pfad zu diesem Ordner. Wenn du nun einen Pfad angibst musst du nur noch den Pfad nach Ordner und Wurzel unterteilen.

Tschüß Markus
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#6

Re: Ordner in treeview/ listview ausgeben

  Alt 3. Dez 2004, 20:29
Nur wie zeige ich die ganze Festplatte in zwei TreeViews an (in dem 1 die Ordner und im 2 die Dateien)?
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: Ordner in treeview/ listview ausgeben

  Alt 3. Dez 2004, 20:33
Wie soll das aussehen? Ich meine, am grundsätzlichen Weg wird sich nichts ändern. Ob ein Tree-View, zwei ... oder mehr. Wozu brauchst du zwei? So eine Art Norton Commander? Dann schreibe eine Prozedur/Funktion, die beide Tree-Views nutzen können.


Edit: Ich bin der Meinung, dass du zu deinem Problem diverse Beiträge finden wirst. Aber ich würde für die Anzeige der Dateien eine List-View nehmen
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#8

Re: Ordner in treeview/ listview ausgeben

  Alt 3. Dez 2004, 20:35
Genaueres wo ich eigentlich hinaus will findest du in meinem Thema: Klick
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz