Pastas no TreeView
25/02/2005
0
Pesquisei no forum e nao encontrei a solução, por isso coloco aki minha duvida:
Preciso colocar em um TreeView as sub pastas de um diretorio...
Por exemplo dentro de C: tem as pasta A, B, C quero que o treeView carregue A, B, C
Mas tudo em run time. Alguma dica?
[]s
Leonardo
Pleonardomv
Posts
25/02/2005
Gabriela
Ou então (se a solução acima nao servir) vc pode usar um procedimento de varredura de pastas, para ir inserindo na tree view, eu tenho um assim aqui:
//Busca todos os sub-diretorios dentro da pasta strNomeDir e insere eles como filho em pai procedure BuscaSubDiretorios(strNomeDir: String; Pai: TTreeNode); var sr: TSearchRec; FileAttrs: Integer; strNome: String; begin try FileAttrs := faDirectory; strNome := strNomeDir; while strNome[Length(strNome)] = ´\´ do strNome := copy(strNome,1,length(strNome) - 1); if strNome[Length(strNome)] <> ´:´ then strNome := ExtractFileName(strNome) else strNome := copy(strNome,1,length(strNome) - 1); Pai := tvwEstrutura.Items.AddChild(Pai,strNome); if FindFirst(strNomeDir + ´*.*´, FileAttrs, sr) = 0 then begin repeat if (sr.Name <> ´.´) and (sr.Name <> ´..´) and ((sr.Attr > 15) and (sr.Attr < 32)) then //verifica se o arquivo encontrado é uma pasta begin BuscaSubDiretorios(strNomeDir + sr.Name + ´\´,Pai); end; until FindNext(sr) <> 0; FindClose(sr); end; except MessageDlg(´Debug: Erro no procedimento BuscaSubDiretorios´,mtError,[mbOk],0); end; end;
Espero ter ajudado.
Abraços, Gabriela.
25/02/2005
Pleonardomv
Pai := tvwEstrutura.Items.AddChild(Pai,strNome);
porque?
Procurei e nao encontrei.
Deus lhe pague
25/02/2005
Gabriela
o que vc esta passando como parametro no pai? De repente pode ser isso... vc tem que passar um nó ja existente na sua treeview.
25/02/2005
Pleonardomv
25/02/2005
Gabriela
m_pvtBuscaSubDiretorios(strNome + ´\´,tvwEstrutura.Selected);
Onde strNome é o caminho da pasta que quero. Ex: ´C:\arquivo de programas´.
Não testei o que acontece se não existir nenhum nó selecionado na treeview.
Acabei de perceber qual deve ser o erro. Tanto na chamada, quando dentro do procedimento ( na linha do erro), eu me refiro a minha treeview: tvwEstrutura .... vc tem que substituir pelo nome da sua treeview.
Acho q deve resolver.
25/02/2005
Pleonardomv
Sucesso sempre...
[]s
Leonardo
Clique aqui para fazer login e interagir na Comunidade :)