![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Problemas FreeAndNil
Hola!
Tengo un problema q me mosquea. Resulta q ponco un punto de control en un objeto tipo TXMLDocument en el q lo creo en un método y lo libero en el mismo. Al liberarlo le pongo un FreeAndNil(objetoxml) y bueno, ahi a veces me casca y otras no. Supongo q tengo un error en algún sitio y ahi le duele.... Entonces se me ocurrió poner un punto de control dentro de FreeAndNil y mirar lo q me hace. En vez de meterse dentro de ese método se metió en otro totalmente diferente... TCustomDXImageList.Notification(AComponent: TComponent) , este método es un método interno de un componente(DelphiX) q maneja las imagenes. Lo q me gustaría saber es xq no pasa por en método FreeAndNil...y xq me pasa por ese método...si es normal al hacer FreeAndNil...o sino..
Gracias a todos por las molestias ![]() |
#2
|
||||
|
||||
Cita:
Cita:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Gracias Neftali.
He probado a meter pero cuando llamo al siguiente método me salta un raised exception (hasta una vez...raised multipled exception jejeje) Por otro lado, el FreeAndNil q pongo no tiene ninguna relación con el método en el q se mete cuando debugas. Lo único q sé, es q antes de pasar por estos métodos, cambio de imagenes. Pero bueno, supongo q tengo un fallo en algún sitio y el compilador empieza a hacer cosas raras...(igual al cambiar las imagenes?). Lo de TXMLDocument.Create(nil) me gustaría saber si no es mucha molestia xq falla, lo otro estoy casi seguro q es por algún error ocurrido antes. Yo creo q algunos objetos necesitan derivarse de un componente para poder funcionar...pero en ese caso q le pase como paramentro un TComponent podría hacer un FreeAndNil o habría q hacerlo de otra forma... Gracias por ayudarme, por ayudar y por todo. |
#4
|
||||
|
||||
Normalmente yo estaría de acuerdo con Neftali cuando dice
Cita:
Cita:
1. Usar una variable de tipo IXMLDocument en lugar de TXMLDocument 2. No intentar liberar dicha variable.
La instancia se destruirá automáticamente en cuanto se pierda la última referencia a ella. En el ejemplo, cuando la variable XMLDocument salga de alcance. // Saludos Última edición por roman fecha: 09-11-2005 a las 05:55:36. |
#5
|
|||
|
|||
Muchas gracias por la ayuda...lo voy a aplicar ahora mismo.
|
![]() |
|
|
![]() |
|