Registriert seit: 6. Apr 2005
10.109 Beiträge
|
Re: eigene Ordnerstruktur in TreeView
30. Jan 2008, 21:57
Das hatte ich nicht bedacht, aber jetzt:
Delphi-Quellcode:
function PathToNode(s: TStrings; tn: TTreeNodes; path: string): TTreeNode;
var
dir, subDir: string;
index: Integer;
begin
subDir := ExtractFileName(path);
dir := ExtractFileDir(path);
if dir = '' then
begin
index := s.IndexOf(subDir);
if index < 0
then Result := nil
else Result := TTreeNode(s.Objects[index]);
if not Assigned(Result) then
Result := tn.AddChild(nil, subDir);
end else
begin
index := s.IndexOf(dir);
if index < 0
then Result := nil
else Result := TTreeNode(s.Objects[index]);
if Assigned(Result)
then Result := tn.AddChild(Result, subDir)
else Result := tn.AddChild(PathToNode(s, tn, dir), subDir);
end;
end;
procedure PathesToNodes(s: TStrings; tn: TTreeNodes);
var
i: Integer;
begin
for i := 0 to Pred(s.Count) do
s.Objects[i] := PathToNode(s, tn, s[i]);
end;
procedure TDemoForm.ButtonClick(Sender: TObject);
var
i: Integer;
sl: TStringList;
begin
sl := TStringList.Create;
sl.Assign(Memo.Lines);
sl.Sort;
for i := sl.Count - 2 downto 0 do
if SameText(sl[i], sl[Succ(i)]) or (sl[i] = '')
then sl.Delete(i)
else sl[i] := ExcludeTrailingPathDelimiter(sl[i]);
sl.Sorted := True;
TreeView.Items.Clear;
PathesToNodes(sl, TreeView.Items);
sl.Free;
end;
Gute Nacht
|
|
Zitat
|