Gracias, efectivamente, todo se libera bien, el error era otro.
Tras horas de traceo
, me di cuenta de que una de las imagenes en el evento onmousedown borra TODAS las imagenes, incluyendo a ella misma. Despues todas se vuelven a crear con datos nuevos.
De modo que todo parece que funciona, hasta que sale del procedimiento y da (y solo a veces) los diferentes errores, incluido el "error abstracto".
La solucion fue no borrar la imagen que genera el borrado
.
No entiendo por que unas veces se produce el error y otras no, ya que la imagen se destruye de todos modos.
Uso delphi 5, quizas delphi 6 y 7 tengan esto resuelto.
Saludos