Cita:
Empezado por roman
Perdón, la verdad es que nada más estoy confundiéndolos. Y lo voy a hacer un poco más
En Delphi <=7 (el resto no sé), poner una referencia a nil, como digo, no libera memoria. Pero, en el caso de una propiedad como image1.picture, normalmente sí se liberará la memoria porque la asignación
Código Delphi [-]image1.picture := nil;
se traduce en
Código Delphi [-]image1.SetPicture(nil);
y muy probablemente el método SetPicture sí se encargue de liberar la memoria.
De todas formas, sigue siendo cierto que si posteriormente se intenta usar image1.picture se obtendrá el error mencionado. Así que, como dice coso, lo mejor es que muestres más código para saber qué pasa.
// Saludos
|
BUeno en realidad el resto del codigo es irrelevante porque lo que hago es limiar unas variables que utilizo para asignar los nombres de las personas apellidos entre otros datos, pero yo voy documentando mi código en un archivo de texto(una especie de Log) y el codigo revienta exactamente en
Código Delphi
[-]
try
image1.Picture.LoadFromFile(valor+foto);
except
on e: exception Do
escribir('*****Exepcion cargando la foto'+' '+e.Message);
end;
después revienta otra vez
Código Delphi
[-]
try
image1.Picture:=nill;
except
on e: exception Do
escribir('*****Exepcion limpiar la foto'+' '+e.Message);
end;