Cita:
Empezado por sierraja
Hola a todos, ok me quedo bastante claro. Gracias por aclararme este episodio. Solo una pregunta mas: Para liberarlo totalmente de la memoria usando sin auto-create y modal, como dice el amigo ecfisa, tan solo utilizar Free y mas nada? para asegurarme...
|
Así es. Básicamente, cuando tú creas un objeto, tú eres el responsable de destruirlo. ¿Cuándo? Generalmente, cuando ya no te sea necesario. De todas formas, al crear un objeto, normalmente, su constructor te permite asignarle un "padre", y, si así haces, el propio "padre" se encargará de eliminar el objeto en cuestión, si tú no lo haces antes. Por ejemplo:
Código Delphi
[-]
Form2 := TForm2.Create(Form1);
Arriba "Form2" es creado y después se le asigna como padre a "Form1". Desde ese momento "Form1" se encargará de destruir el objeto cuando ya no sea necesario, insisto, si tú no lo haces antes. Por el contrario, cuando escribes algo como lo siguiente:
Código Delphi
[-]
Form2 := TForm2.Create( nil );
... no estás asignando ningún "responsable" ("padre") a "Form2", de manera que tú eres el encargado de destruir a "Form2". ¿Cuándo? Como dijimos antes, generalmente, cuando ya no te sea necesario.