Thema: Delphi TreeView und ListView

Einzelnen Beitrag anzeigen

Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#16

Re: TreeView und ListView

  Alt 11. Sep 2007, 16:32
Hier hab ich dir mal ein uraltes Beispiel das dir auch deine +/- Anzeigt vor den Eintraegen im Treeview!

Delphi-Quellcode:
procedure Verzeichnisse_Einlesen(Tree : TTreeView; Verzeichnis : String; Eintrag : TTreeNode; Mit_Dateien : Boolean);
Var
  SearchRec : TSearchRec;
  EintragTemp : TTreeNode;
  List : TStringList;
  Buf : String;
  I : Integer;
Begin
  Tree.Items.BeginUpdate;
  List:= TStringList.Create;
  If Verzeichnis[Length(Verzeichnis)] <> '\Then
  Begin
    Verzeichnis:= Verzeichnis + '\';
  End;
  If FindFirst(Verzeichnis + '*.*', faDirectory, SearchRec) = 0 Then
  Begin
    Repeat
      If (SearchRec.Attr And faDirectory = faDirectory) And (SearchRec.Name[1] <> '.') Then
      Begin
        //Eintrag ist ein Verzeichnis
        If (SearchRec.Attr And faDirectory > 0) Then
        Begin
          //zum aktuellen Eintrag hinzufügen
          Eintrag:= Tree.Items.AddChild(Eintrag, SearchRec.Name);
          EintragTemp:= Tree.Items.Add(Nil, Buf);
          EintragTemp.ImageIndex := 0; //Ummarkiert
          EintragTemp.SelectedIndex := 0; //Markiert
          EintragTemp.StateIndex := -1;
          //Eintrag merken
          EintragTemp:= Eintrag.Parent;
          //auf Untereinträge prüfen
          Verzeichnisse_Einlesen(Tree, Verzeichnis + SearchRec.Name, Eintrag, Mit_Dateien);
          //Eintrag wiederholen
          Eintrag:= EintragTemp;
        End
        Else
          //Eintrag ist eine Datei
          If Mit_Dateien Then
          Begin
            If (SearchRec.Name[1] <> '.') And (SearchRec.Name[1] <> '..') Then
            Begin
              Tree.Items.AddChild(Eintrag, SearchRec.Name);
              Eintrag:= Tree.Items.Add(Nil, SearchRec.Name);
              EintragTemp:= Tree.Items.Add(Nil, List.Strings[I]);
              EintragTemp.ImageIndex := 2; //Ummarkiert
              EintragTemp.SelectedIndex := 2; //Markiert
              EintragTemp.StateIndex := -1;
            End;
          End;
        End;
    Until FindNext(SearchRec) <> 0;
    FindClose(SearchRec);
  End;
  Tree.Items.EndUpdate;
End;

procedure TForm1.Button2Click(Sender: TObject);
begin
  TreeView1.Items.Clear;
  Verzeichnisse_Einlesen(TreeView1, Edit2.Text, Nil, False);
end;
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat