Además de lo que dice delphi.com.ar yo recomendaría una reescritura. La línea
Código:
TImage( FindComponent('Foto'+inttostr(i)) ).free;
es muy osada. Presupone que FindComponent
siempre regresará un objeto. Una de las formas de evitar errores como el que tenía sick boy es siempre verificando que los objetos son distintos de nil antes de referenciarlos. Aunque tome más lineas de código yo siempre reescribiría este código como:
Código:
var
Foto: TImage;
begin
Foto := TImage(FindComponent('Foto'+inttostr(i)));
if Foto <> nil then
Foto.Free;
end;
O bien, si estamos muy seguros de que FindComponent debe regresar un objeto distinto de nil, en la etapa de depuración del programa pondríamos:
Código:
var
Foto: TImage;
begin
Foto := TImage(FindComponent('Foto'+inttostr(i)));
Assert(Foto<>nil, 'Uy, me equivoqué, algo anda mal en mi código');
Foto.Free;
end;
De manera que sea más sencillo revisar por donde andan los errores.
// Saludos