Autor Beitrag
meckert77
Hält's aus hier
Beiträge: 9

Win XP, Win 2003
Delphi 7
BeitragVerfasst: Do 29.09.05 10:35 
Hallo,

ich bin dabei eine Projectverwaltung zu schreiben. Ansich klappt das alles ganz gut, jedoch scheitere ich an der TreeView Komponente.

In einer Datei speichere ich die Pfade der zum Project gehörenden Dateien. Nun will ich den Speicherort der Projectdatei immer als ROOT ausgeben und alle Verzeichnisse des Projectes als Knoten des ROOTS im TreeView ausgeben.

An die Childknoten des Roots sollen dann immer die Dateinamen der in diesen Ordner gespeicherten Dateien als Kinder angehängt werden.

Nun zu meinen Fragen. Wie erreiche ich es, dass der Pfad für die Projectdatei immer als Root angezeigt wird. Also wie bestimme ich den RootKnoten?

Wie kann ich für die Knoten welche Ordner darstellen auch die für Windows typischen Ordnersymbole nutzen?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TfmStart.FormPaint(Sender: TObject);
var
  NewNode : TTreeNode;
  //FPath : string; //DateiPfad == Parrentnode
  //FName : string; //Dateiname == ChildNode
  PName : string; //Projectname == RootNode
  run : PHtmlProject;
begin
  ShowListContent(HtmlListe); //Zugriff auf Dateiname/Pfade ueber HtmlListe

  //Konstruieren des Baumes hier Root erstellen
  if (GProjectName <> '') then //GProjectName (globale Variable)
  begin
    PName:= ExtractFilePath(GProjectName);
    NewNode:= trProject.Items.AddChild(nil, PName);//Soll der Root sein
    NewNode.ImageIndex := 0;
    NewNode.SelectedIndex := 0;
  end;

  //ToDo
  //Kindknoten und Kindesknoten erzeugen

end;


Kann man den Namen der Knoten kuerzen und als Hilfetext oder so ausgeben wenn man mit der Maus über einen Knoten fährt?

Vielen Dank
tomtom62
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 278

WIN 2000, XP prof
D5 prof.
BeitragVerfasst: Do 29.09.05 17:43 
Der Root-Knoten ist nichts anderes als der erste Knoten. Also machst Du ein

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var Rootknoten: TTreenode; 
Treeview.Items.Clear;

Rootknoten:=TreeView.Add(GProjectName);
...
...
// Jetzt kommen die Kinder -)

Treeview.AddChild(Rootknoten,'Ein Kind');

....


Die Ordnerbilder bindest Du genauso über den Imageindex ein, wie in Deinem Beispiel. Schöne Icons findest Du z.B. unter www.glyfx.com..

Thomas