Einzelnen Beitrag anzeigen

marabu

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

Re: eigene Ordnerstruktur in TreeView

  Alt 30. Jan 2008, 13:15
Hallo Philippe,

es wäre natürlich toll, wenn die Pfadnamen in der StringList bereits in dem Format vorliegen würden, welches die TreeView selbst als Textrepräsentation kennt, aber ausgehend von deinen Beispieldaten kannst du so vorgehen:

Delphi-Quellcode:
function PathToNode(s: string; tn: TTreeNodes): TTreeNode;
var
  dir, subDir: string;
begin
  dir := ExcludeTrailingPathDelimiter(s);
  subDir := ExtractFileName(dir);
  dir := ExtractFileDir(dir);
  if dir = ''
    then Result := tn.AddChild(nil, subDir)
    else Result := tn.AddChild(PathToNode(dir, tn), subDir)
end;

procedure PathesToNodes(s: TStrings; tn: TTreeNodes);
var
  i: Integer;
begin
  for i := 0 to Pred(s.Count) do
    PathToNode(s[i], tn);
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
var
  i: Integer;
  sl: TStringList;
begin
  sl := TStringList.Create;
  sl.Assign(Memo.Lines);
  sl.Sorted := True;
  for i := sl.Count - 2 downto 0 do
    if AnsiStartsText(sl[i], sl[Succ(i)]) then
      sl.Delete(i);
  TreeView.Items.Clear;
  PathesToNodes(sl, TreeView.Items);
  sl.Free;
end;
Freundliche Grüße
  Mit Zitat antworten Zitat