problem z TreeView

0

Czesc

Mam taka procedurke:

procedure TForm1.Skanuj(Dir: string);
var
Found, n : integer;
F : TSearchRec;
MyTreeNode1: TTreeNode;

procedure Dodaj(nazwa: string);
begin
with TreeView1.Items do
begin
MyTreeNode1 := Add(nil, nazwa);
end;
end;

procedure Dodaj_sub(nazwa: string);
begin
with TreeView1.Items do
begin
// nie wiem jak utworzyc podkatalog
end;
end;

begin
Dir := IncludeTrailingPathDelimiter(Dir);
Found := FindFirst(Dir+'*', faAnyFile, F);
while Found = 0 do
begin
if (F.name<>'.') and (F.name<>'..') then
if (F.Attr and faDirectory)>0 then
begin
Dodaj_sub(F.name);
Skanuj( Dir+F.name);
end
else
begin
Dodaj(F.name);
end;
Found := FindNext(F);
end;
FindClose(F);
end;

Jak zrobic zeby podkatalog byl w pod danym katalogiem a nie na glownym drzewie.
Kombinuje i nie moge nic wymyslec.

Bede wdzieczny za pomoc

0

Oto kod, który chyba chciałeś zrobić. Pamiętaj tylko, że ta metoda jest powolna do pokazania całego dysku. Jeśli chcesz mieć listę plików w postaci drzewa, to wykorzystaj komponent TShellTreeView (zakładka Samples) - o ile masz, albo pobieraj zawartość katalogu dopiero po jego rozwinięciu - nie wszystkie na raz.

procedure ShowFolder(Path:string; Node:TTreeNode);
var sr:TSearchRec;
    SubNode:TTreeNode;
begin
if (FindFirst(Path+'*', faAnyFile, sr) = 0) then
  begin
    repeat
    if (sr.Name<>'.') and (sr.Name<>'..') then
      begin
      SubNode:=Form1.TreeView1.Items.AddChild(Node, sr.Name);
      if (sr.Attr and faDirectory>0) then
        ShowFolder(Path+sr.Name+'\', SubNode);
      end;
    until (FindNext(sr) <> 0);
  FindClose(sr);
  end;
end;

ShowFolder('C:\', TreeView1.Items.Add(nil, 'C:\'));
0

Dzieki wielkie o to mi chodzilo ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1