Monday, July 03, 2006

Adresářový strom

Zobrazování souborů v adresářovém stromu zná dobře asi každý uživatel Windows. Ukážeme si teď, jak na to. Náš příklad je zjednodušen tím, že budeme zobrazovat pouze názvy souborů a adresářů bez jejich odpovídajících ikonek. To však není problém případně dodělat, pokud budete chtít. Něčemu podobnému jsme se zde již věnovali, takže inspiraci máte.
Nyní tedy již vlastní zdrojový kód:
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;