Después de pensar un rato, creo que me conviene más usar TStringGrid ya que quizás en un futuro me sea útil meterle más de un valor por elemento.
Mi idea para este ejercicio era aprovechar la función que publicó David Esperalta acerca de como buscar archivos en un directorio y mostrarlos en una TString list
Código Delphi
[-]
procedure BuscarArchivos(const directorio, mascara: string;
atributos: Integer; var listado: TStrings);
procedure Buscar(const subdirectorio: string);
var
regBusqueda: TSearchRec;
begin
if FindFirst(subdirectorio + mascara,atributos,regBusqueda) = 0 then
begin
try
repeat
Application.ProcessMessages;
if (regBusqueda.Attr and faDirectory = 0)
or (regBusqueda.Name <> '.')
and (regBusqueda.Name <> '..') then
listado.Add(subdirectorio + regBusqueda.Name);
until FindNext(regBusqueda) <> 0;
except
FindClose(regBusqueda);
end;
FindClose(regBusqueda);
end;
if FindFirst(subdirectorio + '*', atributos
or faDirectory, regBusqueda) = 0 then
begin
try
repeat
Application.ProcessMessages;
if ((regBusqueda.Attr and faDirectory) <> 0)
and (regBusqueda.Name <> '.')
and (regBusqueda.Name <> '..') then
Buscar(subdirectorio + regBusqueda.Name + '\');
until FindNext(regBusqueda) <> 0;
except
FindClose(regBusqueda);
end;
FindClose(regBusqueda);
end;
end;
begin
Buscar(IncludeTrailingPathDelimiter(directorio));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
lista: TStrings;
begin
lista := TStringList.Create;
BuscarArchivos('C:\', '*.exe', faAnyFile, lista);
ShowMessage(lista.Text);
lista.Free;
end;
Creo que el error de esta aplicación se halla en que la función BuscarArchivos, está programada para que el resultado sea visualizado en una lista TStrings y no en una TStringGrid (la variable listado es un TString y no un tStringGrid). He probado en modificar levemente la función, pero me da error: creo que puede deberse a la siguiente sentencia:
listado.add(subdirectorio + regBusqueda.Name); ya que la propiedad .add es para el componente TString y no para el TStringGrid.
Donde me estoy equivocando?
Saludos!