// Ein
Pfad in einem TDirectoryOutline wird ab einem bestimmten function zaehlen(s: string): integer; var x: integer; begin result := 0; for x := 1 to length(s) do if s[x] <> #9 then break else inc(result); end; procedure aufklappen(dol: TDirectoryOutline; idx: integer); var i: integer; s: string; begin screen.cursor := crhourglass; with dol do begin i := SelectedItem; items[i].collapse; s := stringofchar(#9, zaehlen(lines[i - 1]) + 1); items[i].expand; inc(i); while i < itemcount do begin if ansipos(s, lines[i]) <> 1 then break; inc(i); items[i].expand; end; end; screen.cursor := crdefault; end; // Beispielaufruf: Der selektierte Ordner wird expandierd procedure TForm1.Button5Click(Sender: TObject); begin aufklappen(DirectoryOutline1, DirectoryOutline1.SelectedItem); end; |