![]() |
Create(Nil) o Create(Self)
Buenas amigos tengo la siguiente duda, yo se que si se crea un objeto de forma Nil, no pertenece al formulario y nosotros tenemos que liberar la memoria a pie! y si lo creamos Self, pertenece al Form y el liberara el espacio en memoria al ser cerrado, de todas maneras tengo la duda de cual es mejor por ejemplo a la hora de usar un objeto de tipo TZquery
porque por lo general lo he visto de la siguiente forma
|
Hola.
Esto creo que es regla de oro para cualquier componente: Si lo creas en el programa principal y queres destruirlo al finalizar la aplicación usa Application , si lo creas en otro Form y queres que se destruya al destruirse este, usa Self. Ahora si liberarlo depende de algún otro evento o situación usa nil, así te aseguras evitar errores por liberar dos veces el componente. Saludos. |
Como tú bien has dicho el resultado final es el mismo si se hace bien.
Si dejas que el formulario destruya el elemento estás dejando esa tarea para cuando se cierre el formulario y la mayoría de las veces no es necesario esperar tanto. Salvando ese caso, lo normal será que destruyas el objeto cuando ya no lo necesitas, de ahí que la forma que suelo utilizar es:
|
Creo que será 'finally' y no 'except', porque si no ocurre ninguna
'exception' no se eliminará de la memoria correctamente
También puede ser que esté dormido y me esté confundiendo, voy a tomarme un café :D |
Fuera dudas: Nil, Self, Application
En su blog, Zarko Gajic explica (en inglés) con detalle este tema.
|
Cita:
// Saludos |
Cita:
|
Cita:
Está claro que el que está dormido soy yo... ;) |
| La franja horaria es GMT +2. Ahora son las 00:15:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi