AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pfad von Treeview bekommen

Ein Thema von o0o · begonnen am 10. Okt 2007 · letzter Beitrag vom 10. Okt 2007
Antwort Antwort
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#1

Pfad von Treeview bekommen

  Alt 10. Okt 2007, 09:02
hi leutz,...also hiermit zeige ich den inhalt eines verzeichnisses in einem treeview an:
Delphi-Quellcode:
 //listed alles im tree-view
procedure GetDirectories(Tree: TTreeView; Directory: string; Item: TTreeNode; IncludeFiles: Boolean);
var
  SearchRec: TSearchRec;
  ItemTemp: TTreeNode;
begin
  Tree.Items.BeginUpdate;
  if Directory[Length(Directory)] <> '\then Directory := Directory + '\';
  if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then
  begin
    repeat
      if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then
      begin
        if (SearchRec.Attr and faDirectory > 0) then
          Item := Tree.Items.AddChild(Item, SearchRec.Name);
        ItemTemp := Item.Parent;
        GetDirectories(Tree, Directory + SearchRec.Name, Item, IncludeFiles);
        Item := ItemTemp;
      end
      else if IncludeFiles then
        if SearchRec.Name[1] <> '.then
          Tree.Items.AddChild(Item, SearchRec.Name);
    until FindNext(SearchRec) <> 0;
    FindClose(SearchRec);
  end;
  Tree.Items.EndUpdate;
end;


//zeigt die tree-list view an
procedure TForm1.Button1Click(Sender: TObject);
var
  Node: TTreeNode;
  Path: string;
  Dir: string;
begin
  Dir := combobox1.text;
  Screen.Cursor := crHourGlass;
  TreeView1.Items.BeginUpdate;
  try
    TreeView1.Items.Clear;
    GetDirectories(TreeView1, Dir, nil, True);
  finally
    Screen.Cursor := crDefault;
    TreeView1.Items.EndUpdate;
  end;
end;
ok das ganze klappt auch wunderbar,...nur moechte ich auch an den pfad kommen^^
also wenn ich zb unter c:\programme\info\ka_was.txt das element ka_was.txt im treeview makiere, dass ich dann speziell an den pfad komme^^...wichtig is halt nur dass ich an den pfad vom aktuell makierten komme und zb diesen in einem edit seperat anzeiegn koennte^^

thx fuer eure hilfe im vorraus und ich hoffe ihr versteht wie ich das meine,....bin erst seit 3mon an delphi und von daher nichso drauf wie einige andere hier

da o0o

[OT]ps... ehm geht euch das nich auf die eier wenn ich hier staendig mit meinen fragen nerve? ich mein ich schreib nich 2-3 threads im monat sondern die woche^^...interessiert mich nur mal wie ihr das so seht...
(_/marabu-fan inside\_)
[-\_______________/-]
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Pfad von Treeview bekommen

  Alt 10. Okt 2007, 09:58
Moin,

ich habe ein paar Sachen umgestellt und etwas hinzugefügt. Schau mal wie weit du das ohne Kommentare durchdringen kannst.

Delphi-Quellcode:
procedure GetDirectories(
  Tree: TTreeView;
  Directory: string;
  Item: TTreeNode;
  IncludeFiles: Boolean
);
var
  SearchRec: TSearchRec;
  ItemTemp: TTreeNode;
begin
  Directory := IncludeTrailingPathDelimiter(Directory);
  if FindFirst(Directory + '*.*', faDirectory or faReadOnly or faArchive, SearchRec) = 0 then
  begin
    repeat
      if Pos(SearchRec.Name, '..') = 1 then
        Continue else
      if (SearchRec.Attr and faDirectory = faDirectory) then
        GetDirectories(
          Tree,
          Directory + SearchRec.Name,
          Tree.Items.AddChildObject(Item, SearchRec.Name, Pointer(1)),
          IncludeFiles
        ) else
      if IncludeFiles then
        Tree.Items.AddChild(Item, SearchRec.Name);
    until FindNext(SearchRec) <> 0;
    FindClose(SearchRec);
  end;
end;

function TreeNodePath(node: TTreeNode; delimiter: Char = PathDelim): string;
begin
  if Assigned(node)
    then Result := TreeNodePath(node.Parent, delimiter) + delimiter + node.Text
    else Result := '';
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  TreeView.Items.BeginUpdate;
  GetDirectories(TreeView, 'C:\Daten', nil, False);
  TreeView.Items.EndUpdate;
end;

procedure TDemoForm.TreeViewChange(Sender: TObject; Node: TTreeNode);
begin
  Caption := TreeNodePath(Node);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Pfad von Treeview bekommen

  Alt 10. Okt 2007, 10:20
big thx fuer deine hilfe

also ich hab die letzte procedure auf tform1 abgeaendert damit es bei mir passt...nur iwi gehts noch nich:
Delphi-Quellcode:
procedure TForm1.TreeViewChange(Sender: TObject; Node: TTreeNode);
begin
  Caption := TreeNodePath(Node);
end;
es kommt beim kompilieren immer ein error in dem steht dass TreeViewChange ein nicht definierter bezeichner ist 0_o

weisst du an was das haengt?^^ ich weiss nich weiter^^

o0o
(_/marabu-fan inside\_)
[-\_______________/-]
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Pfad von Treeview bekommen

  Alt 10. Okt 2007, 10:28
Klick den Treeview an -> ObjectInspector oben auf Ereignisse-in der liste suchst du OnChange und machst n doppelklick drauf da trägst du dann


  Caption := TreeNodePath(Node); ein
fertig
Marcel
  Mit Zitat antworten Zitat
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Pfad von Treeview bekommen

  Alt 10. Okt 2007, 10:50
ach gott ich bin ja so verpeilt
stimmt ja hab ganz vergessen...naja thx euch beiden fuer die hilfe es klappt einwandfrei

da o0o
(_/marabu-fan inside\_)
[-\_______________/-]
  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 22:23 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