Cita:
|
Empezado por Lepe
Obviamente estas añadiendole tus errores al código que Maeyanes puso de memoria.... ¡¡ y que memoria !!  solo tiene un par de detalles, que despues de ejecutar paso a paso se vé claramente.
|
Y como te darás cuenta, la memoria me falló... jejeje
Se me pasó que el metodo para agregar nodos hijos es AddChild, como bien mencionas más a bajo.
Cita:
|
Empezado por Lepe
Por cierto, no te ha ayudado a "depurar el código" sino a trabajar recursivamente.
|
Así es, además que le quité cierto código que sentí estaba de más, mi intención primera era mostrarle como hacer un procedimiento recursivo.
Cita:
|
Empezado por Lepe
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
procedure TreeListing(const Folder: string; Nodes: TTreeNodes;
ParentNode: TTreeNode);
var
AFolder: TSearchRec;
NewNode: TTreeNode;
begin
if FindFirst(Folder + '*.*', faDirectory, AFolder) = 0 then
repeat
if ((AFolder.Attr and faDirectory) = faDirectory) and
((AFolder.Attr and faSysFile) <> faSysFile) and
(AFolder.Name <> '.') and (AFolder.Name <> '..') then
begin
NewNode := Nodes.AddChild(ParentNode, AFolder.Name);
TreeListing(IncludeTrailingPathDelimiter(Folder+AFolder.Name) +
'*.*', Nodes, NewNode);
end;
until
FindNext(AFolder) <> 0;
FindClose(AFolder);
end;
begin
TreeView1.Items.Clear;
TreeListing(('c:\windows\'),TreeView1.Items,nil);
end;
|
Otro detalle, esta comprobación:
((AFolder.Attr and faDirectory) = faDirectory) and
((AFolder.Attr and faSysFile) <> faSysFile) tal vez esté de más, ya que en la llamada a FindFirst se le está diciendo que solo busque carpetas.
Cita:
|
Empezado por Lepe
saludos
|
Saludos...
