Ver Mensaje Individual
  #31  
Antiguo 05-12-2008
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Reputación: 23
nuk3zito Va por buen camino
Gracias Lepe por tomarte el tiempo de modificar el código.

Cita:
Empezado por Lepe Ver Mensaje
1º- Si en un except no haces nada, estás ocultando esa excepción, por tanto jamás encontrarás el fallo que hay en esa rutina. Entiendo que estando desesperado o simplemente apresurado, lo hayas puesto.
Realmente ese except fue herencia del programador, pero tienes toda la razón, no tiene cas ponerlo o debería haber enviado el mensaje de error que presentara en pantalla

Cita:
Empezado por Lepe Ver Mensaje
2º- ¿para qué está el polimorfismo en delphi? pues a usarlo. Todos las instancias heredan de TObject en delphi, pero si llamamos a Tobject.Free, delphi sabrá que ese objeto es en realidad un TobjTitulo o lo que sea, por tanto, ejecutará el TobjTitulo.Free o el destructor que le corresponda.
No use TObject.Free por simple ignorancia, pensando que el Free debería dispararse desde su máximo nivel de herencia. Cada día aprendo más.

Cita:
Empezado por Lepe Ver Mensaje
3º- Ese bucle está bien, por tanto, olvida ese código y pasa a mirar si en algún momento estás liberando alguno de esos objetos. Por último pasa por mirar el método destroy de cada uno de tus clases: TobjTitulo, TobjFormulaExcel, etc porque ahí estará el error. De hecho he modificado el código para que salte un ShowMessage en la clase que te da el error al liberarlo de memoria, creo eso te ayudará a localizar el error.
Voy a probar este código que me envías y te lo informo (estoy trabajando ya en ello)

Que bueno que me mencionas que revise los métodos destroy... ahora están vacíos pero existen (porque antes tenían código), los voy a eliminar puesto que no hay nada que liberar ya de manera explícita.
Se que el error está en una simple línea seguramente, gracias nuevamente.
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita