function MakeFileList(Path,FileExt:string):TStringList ;var sch:TSearchrec;begin Result:=TStringlist.Create; if rightStr(trim(Path), 1) <> '\' then Path := trim(Path) + '\' else Path := trim(Path); if not DirectoryExists(Path) then begin Result.Clear; exit; end; if FindFirst(Path + '*', faAnyfile, sch) = 0 then begin repeat Application.ProcessMessages; if ((sch.Name = '.') or (sch.Name = '..')) then Continue; if DirectoryExists(Path+sch.Name) then begin Result.AddStrings(MakeFileList(Path+sch.Name,FileExt)); end else begin if (UpperCase(extractfileext(Path+sch.Name)) = UpperCase(FileExt)) or (FileExt='.*') then Result.Add(Path+sch.Name); end; until FindNext(sch) <> 0; FindClose(sch); end;end;
procedure TForm1.FormCreate(Sender: TObject);var I : integer;begin lst1.Items := MakeFileList(ExtractFilePath(Application.ExeName)+'Report','.fr3'); for I := 0 to lst1.Count -1 do begin lst1.Items[I] := StringReplace(StringReplace(lst1.Items[I],ExtractFilePath(Application.ExeName)+'Report','',[rfReplaceAll, rfIgnoreCase]),'\','',[rfReplaceAll, rfIgnoreCase]); end; if lst1.Items[0] = '' then lst1.Items.Delete(0); cbb1.Clear; for I := 0 to lst1.Count -1 do begin cbb1.Items.Add(lst1.Items[I]); cbb1.ItemIndex := 0; end; lst1.Clear;end;