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.