Писал в точности тоже самое в свое время. Держи, вот готовый код:
Код:
procedure TForm1.load;
var
searchResult : TSearchRec;
begin
SetCurrentDir(''); /путь откуда читаем данные
if FindFirst('*.txt', faanyfile, searchResult) = 0 then
begin
repeat
listbox1.Items.Add(copy(searchresult.Name, 0, length(searchresult.Name)-4));
until FindNext(searchResult) <> 0;
FindClose(searchResult);
end;
end;