// Ein Pfad in einem TDirectoryOutline wird ab einem bestimmten
// Index an expandiert. Der selektierte Eintrag bleibt dabei
// weiterhin selektiert.
// Querverweis:
einen Pfad bis zu einem bestimmten Ordner expandieren

// Getestet mit D4 unter WinME

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;


Zugriffe seit 6.9.2001 auf Delphi-Ecke