Bueno, ya lo he conseguido, la duda era que no sabía eliminar el if de la búsqueda recursiva.
Código Delphi
[-]
procedure Rastrear (Dir:string);
var
FileSearch: TSearchRec;
begin
Screen.Cursor := crHourGlass;
ChDir ( Dir );
if FindFirst ( '*.*', faDirectory, FileSearch )=0 then
repeat
begin
Form1.Memo1.Lines.Add (FileSearch.Name);
end;
until FindNext( FileSearch ) <> 0;
FindClose( FileSearch );
Screen.Cursor := crDefault;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Rastrear ('C:\');
end;
Ala, ya está, me parece que este hilo debería quedar en la colección de hilos útiles. a mi me parece que lo és y mucho.