Ver Mensaje Individual
  #5  
Antiguo 09-07-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por coso
Un par de apuntes sobre el codigo de caro. Se deberia liberar slCampos antes de salir de la funcion, y de la misma manera (por ejemplo en el formdestroy o al crear nuevos botones) se han de liberar manualmente los objetos creados en ella. Saludos.
"slCampos" debería liberarse, o así suele hacerse, aunque, si no me equivoco, al tratarse de una variable "local", esta se liberará de todas todas al finalizar la función. Pero, sí, suele liberarse, y hacerse un bloque "try ... end", puesto que, en caso de excepción, por ejemplo, ya no queda tan claro qué pasaría con la variable... al menos a mí no me queda tan claro.

En cuanto a los botones creados en tiempo de ejecución, a estos se les está asignando un "dueño":

Código Delphi [-]
Boton := TButton.Create(Self);

"Self" es el dueño del recién creado componente, y será "Self" quien, cuando se destruya, se encargue de liberar los componentes cuyo "dueño" sea el propio "Self". Al menos esto es lo "natural", porque, otra vez si no me equivoco, nada te impediría liberar por tu cuenta los botones: pero el propio "Self" lo hará si tú no lo haces antes por otro lado.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita