Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
Delphi 2006 Architect
|
Re: TreeView und ListView
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)
|
|
Zitat
|