Un detalle importante, es el de saber cuantos elementos ir almacenando.
Es cierto que puedes ir reservando espacio a demanda haciendo:
Código Delphi
[-]
SetLength(ficheros, numeroelementos+1)
Pero el gran problema surge cuando el número comienza a crecer, dado que comienza a comsumir mayor cantidad de tiempo, debido a la reorganización en memoria del arreglo.
Para solucionarlo, sabiendo que vas a necesitar muchos elementos, pides muchos mas:
Código Delphi
[-]
SetLength(ficheros, numeroelementos+10000)
10000 es sólo un ejemplo.
Si necesitas más vas agregando de a 10.000, una ves completado vuelves a redimensionar, para eliminar los sobrantes
Código Delphi
[-]
SetLength(ficheros, numerostomados)
Recuerdo que esto sólo es necesario, cuendo se requieren procesos rápidos, por ejemplo de agregar más de 1000 datos por segundo, sino el tiempo consumido no es tan importante.