FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Cerrar Paquetes cargados dinámicamente, desde el paquete.
Estoy cargando dinámicamente un paquete BPL desde un ejecutable (Aplicación MDI) de la siguiente forma:
El detalle está en que le asigno al evento OnClose, le asigno la función "LiberaBPL", la cuál lo único que hace es liberar el paquete de la siguiente forma:
Si le doy click al botón cerrar de la barra de título (la tachita roja), se ejecuta el evento OnClose desde la aplicación que lo carga (MDI) y se libera el paquete si problemas: Es decir: MDI -> OnClose -> LiberarBPL -> Regresa al MDI Pero si dentro del BPL pongo un botón "Cerrar" con la instrucción "Close", el evento OnClose se manda llamar desde el mismo BPL y me genera un error de memoría, porque pasada la línea "UnloadPackage", intenta regresar al BPL, pero este ya fue liberado; Es decir: BPL -> OnClose -> LiberarBPL -> Regresa al BPL - Error de memoria Puedo hacer, en lugar de la instrucción "Close", poner la instrucción "Free" y el BPL se libera, pero no se libera en la aplicación MDI (nunca ejecuta el OnClose -> LiberarBPL). Así que mi pregunta es: ¿Como puedo cerrar y liberar el paquete, desde el mismo paquete? Cualquier idea, orientación o comentario es bienvenido.
__________________
|
#2
|
||||
|
||||
Igual me equivoco, pero quien debe cerrar el paquete es quien lo cargó. Bueno yo así lo hago. mi forma carga el paquete, invoca las clases y descarga el paquete.
__________________
Conoce mi blog http://www.edgartec.com |
#3
|
||||
|
||||
Si cargara los paquetes de forma Modal, al cerrar el paquete se descargaría. Pero no los muestro de forma modal, el BPL es un formulario hijo "MDICHild", por lo que desconozco en que momento el usuario cierra el formulario. Y sí, quien lo descarga es quien lo carga, el punto es que si desde el BPL mando llamar la función para liberar el paquete, al final trata de regresar al BPL, pero como ya se liberó, entonces me marca error de memoría.
__________________
|
#4
|
||||
|
||||
Cita:
Es decir, si el formulario es modal, se liberará al cerrarlo (caFree), pero eso no quiere decir que el paquete se descargue. Creo que intentar descargar el paquete desde el mismo paquete sólo te va a dar problemas. En todo caso puedes hacer un "Gestor de paquetes", que "vigile" cuantos formulario de un paquete hay cargados y cuando no quede ninguno abierto te los descargue automáticamente. De la misma forma y ampliando un poco más, ese mismo gestor se puede encargar de cargarlos automáticamente cuando necesites un formulario de un paquete...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
Cita:
Cita:
Cita:
Y creo que sí empezaré a ver como realizamos un "gestor" como mencionas.
__________________
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Liberar Paquetes cargados dinámicamente | ContraVeneno | Varios | 3 | 08-07-2008 14:58:38 |
Evitar cerrar formulario principal si hay librerías cargadas dinámicamente | ContraVeneno | Varios | 5 | 03-07-2008 16:21:14 |
Error al cerrar aplicacion cuando creo fields dinamicamente | mierda | OOP | 3 | 02-11-2006 18:57:41 |
Cerrar dos formularios creados dinamicamente (al mismo tiempo) | ctronx | Varios | 7 | 02-09-2004 00:19:04 |
cerrar formularios creados dinamicamente | ctronx | Varios | 5 | 17-06-2004 18:25:17 |
|