Se me ocurre que esté "saltando" el evento OnPaint cuando estás destruyendo el formulario (cerrando) y cuando ya hay cosas que están destruídas.
En el evento OnPaint prueba a colocar esto al principio:
Código Delphi
[-]
if (csDestroying in Self.ComponentState) then begin
Exit;
end;
...aqui sigue en OnPaint