![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Te lo ha explicado ecfisa en su post:
Cita:
En el segundo caso que propones creas unas instancia de una clase y se la asignas a una variable privada del form. Esa variable no dejara de existir mientras exista el form1, por lo que si le asignas una vez una instancia seguirá asignada mientras no se destruya el form1. No sé si habre ayudado algo, la verdad es que la explicación que te había dado ecfisa me parece mucho mas clara que lo que acabo de escribir yo. |
|
#2
|
|||
|
|||
|
Pero porque si la declaro dentro de un evento, al momento de evaluarla "llega con basura" (por llamarlo de alguna forma.) y si la declaro como variable de Form1, llega con nil???
__________________
Saluda Atte Neeruu!!! :) |
|
#3
|
||||
|
||||
|
Hola Neeruu.
Cita:
Cita:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#4
|
|||
|
|||
|
Gracias.... Gracias y mas Gracias....
Ahora si quedo clarito porque la diferencia.... Con esto voy a mejorar las instancias de mis clases.... Supongo que renegare un poco con algunas cosas... pero ahora entiendo porque.... Saluda Atte Neeruu!!! ![]()
__________________
Saluda Atte Neeruu!!! :) |
|
#5
|
|||
|
|||
|
Cita:
Cual seria la forma de que en el momento que se destruye la variable, se libere la instancia del Form?
__________________
Saluda Atte Neeruu!!! :) |
|
#6
|
||||
|
||||
Una variable simplemente es una dirección de memoria a la que para identificarla se le asigna un nombre, etiqueta o alias. El alcance de esta está definido según donde se la declare, en inglés le llaman scope, que vendría a ser la porción de código en donde se conoce ésa variable. Si la declaras en un procedimiento no podes usarla fuera de este, si la declaras en una unidad la podes usar en cualquier procedimiento dentro de la unidad, y sí además es pública también podrían usarla otras unidades que conozcan a la unidad en cuestión. Cuando llamas a un constructor, en esa porción de memoria se crea tu objeto formulario, es decir se ocupa la memoria. Delphi no usa recolector de basura así que es responsabilidad de quien crea un objeto liberarlo. Para facilitar esto hay objetos a los que se les puede asignar otro el cual es el encargado de liberarlos cuando el "padre" es liberado. Es el caso de los descendientes de TComponent por ejemplo En realidad el compañero anterior creo que está equivocado, la variable no se destruye al finalizar el proceso, solamente se pierde la referencia (queda fuera de alcance) y por eso la instancia del formulario queda abierta y no puede liberarse la memoria Este problema es conocido como memory leaks o fugas de memoria Como el formulario del código del menaje esta creado pasando como parámetro "Self" (el formulario principal) quiere decir que se asigna como encargado de liberar el formulario cuando Self es liberado, así que aunque se pierda las referencias en este caso no habría fugas Última edición por AgustinOrtu fecha: 24-03-2015 a las 16:15:15. |
|
#7
|
|||
|
|||
|
Puede que tengas razón AgustinOrtu, si ejecuto este código pierdo acceso al formulario, pero el formulario sigue estando...
__________________
Saluda Atte Neeruu!!! :) |
|
#8
|
||||
|
||||
|
Exacto, pero hace la prueba de cerrar todo y agrega esta línea en el .dpr o en el evento OnCreate del formulario principal
Crea y cerra varias veces el formulario hijo y después cerra el primicial. Si te sale un error es que hubo fuga de memoria y te va a indicar que objeto y que cantidad no fue liberada, sino sale ningún error está todo bien |
|
#9
|
|||
|
|||
|
Interesante....
__________________
Saluda Atte Neeruu!!! :) |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Multiples instancias en Fastreport | afxe | Impresión | 0 | 24-02-2010 16:54:13 |
| multiples instancias de aplicación | nfrfabian | Varios | 3 | 09-12-2006 14:55:17 |
| multiples instancias de un Form | dark_c | OOP | 3 | 31-01-2006 09:42:14 |
| Evitar Instancias Multiples De Mi Aplicacion | edgusano | .NET | 8 | 28-04-2005 19:21:02 |
| Multiples instancias | Phacko | Varios | 1 | 07-09-2004 15:40:25 |
|