Problema GRAVE con LoadPackage y MDIChild
Buenas!!
Tengo un problema GRAVE con levantar de un archivo bpl un formulario MDICHILD. El codigo que uso es el siguiente:
Este es un metodo que esta en una clase que la uso para levantar y ejecutar los BPL. Funciona todo bien, el problema es que no puedo liberar la el package cuando cierro el FORM, ya que no me deja abrir o cargar otro package hasta que no cierre y libere este. Que forma puede haber para hacer esto bien? Intente levantando un Thread que verifica si el form esta showing y ahi liberar pero es un bardo! Alguien le paso esto? en google ya no se como buscar. Porque son 2 cosas las que hay que liberar, es el handle y el AForm, es mas es el handle ya que el MDIChild si no me equivoco ya se libera con el caFree. Gracias |
porque esta linea:
LockWindowUpdate(Handle); a un package??? porque no a la forma que creas?, no se si por ahi vaya el error |
No hace solo es para q no se vea la animacion del formulario, pero no hace nada mas que eso, si lo sacas es lo mismo.
|
El problema es que es NECESARIO liberar el HANDLE despues de cerrar el form y ahi es donde tengo el gran problema, ya que al poner un Unloadpackage en el OnDestroy del form da error ya que el form todavia existe ya que estoy liberandolo cuando todabia existe el form.
Que evento o de que forma puedo liberar el HANDLE, sabiendo que el form ya esta free? |
Cita:
Esa operación deberías hacerla desde fuera; Seguraente desde el mismo lugar desde donde llamas a cargar el package. Cuando crees el package intenta capturar el evento OnDestroy/OnClose del Form hacia un procedimiento de la aplicación. A ese procedimiento te llegará el control cuando Liberes/cierres el formulario del package. Puedes intentarlo a ver qué tal... |
Asi es , ese es el problema, intentare poniendo un Observer para q le avisen que el form se cerrara, cualquier cosa les comento.
Gracias |
Cita:
Es una mie.. las librerias estas :( |
Bueeee por fin lo encontre!!!
Buscando en la nebulosa de google encontre que una persona tenia el mismo problema, la solucion fue usar la API de mensajes de windows :D Yeah!! en el bpl en el OnDestroy ponemos PostMessage y en el formulario principal esperamos dicho evento y ahi mandamos a hacer Unloadpackage !! Bueno si para alguien le interesa ahi esta la solucion. Gracias |
Cita:
A mi personalmente me interesa, y tal vez otros usuarios en consultas posteriores también les pueda ir bien. Gracias. |
Ok, es mi idea no te hagas drama que lo voy a publicar.
Dejame armar todo y asi ya dejo todo de una. Gracias |
La franja horaria es GMT +2. Ahora son las 12:25:05. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi