Ver Mensaje Individual
  #5  
Antiguo 13-05-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita