Estuve ausente unas horas y hay mucho que responder. Voy a tratar de explicar...
Uso el debugger y uso breakpoints pero como decía en este caso las lineas no tienen nada que ver... es decir, las lineas que detalle (el "FormatFloat" y la creación del StringList) me las cantò el debugger. El problema es que la mitad de las veces al saltar el error, la linea roja la marca en el "end" de la unidad principal, es decir después de "Application.run".
Con respecto a los break points, tampoco ayudan ya que los errores ocurren en la teración 125745, por ejemplo. El pseudocódigo es algo así...
Código Delphi
[-]
Funcion gen_random: extended
begin
Result = randómico con una distribución particular a partir de random.
end;
procedure grafica(vector: array of extended)
begin
graficar ese array (que puede tener entre 500 y 2 millones de números)
end
procedure principal
begin
SetLength(arraygrande, 2000000);
for i:=0 to 2000000
arraygrande[i] := gen_random
graficar(arraygrande)
end;
Como entenderán donde quiera que ponga el break point podría pasar cientos de miles de veces sin dar un error.
Pero además no es el error en una linea específica es en cualquier lado. Me suena más a un problema de memoria...
Maeyanes
Los StringList les hago un free, lo que asigno nil son los arrays de extendeds