![]() |
![]() |
| 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
|
|||
|
|||
|
Gracias, ya pude crear los archivos BPL.
Me comentaste que en tu aplicación tienes algunos packeges que se carga de forma estatica y otras dinamica... esto quiere decir (estatica), que los carga automaticamente al ejecutarse el EXE... y dinamica, a peticion del usuario?? Me podrias guiar con algo de codigo como podría cargas estos packages tanto de forma estatica, como dinamica. Gracias |
|
#2
|
||||
|
||||
|
En principio es sencillo; Si tú en algún USES de una unit, haces referencia a elementos de otro package, el compilador linka ese pacakes de forma estática y aunque tu programa se ejecute con packages, si falta alguno de esos, tu programa fallará al iniciar.
Para utilizar un form de otro packages, por ejemplo, basta con añadirlo al uses y hacer esto:
La otra opción es no hacer referencia en los USES a nada que esté en los packages, de esa forma el compilador/linker no necesita esas referencias y no crea ese vínculo estático. Esos packages se cargan desde el programa de forma dinámica (LoadPackage o loadLibrary -en el caso de DLL's-) y para utilizar los formularios o clases que contienen se usa RTTI. En este caso si quisieras mostrar el form de usuario, deberías hacerlo como se muestra aquí, aquí, aquí, aquí o aquí. si buscas en los foros, encontrarás más referencias (busca por GetClass, RTTI,...)
__________________
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. |
|
#3
|
|||
|
|||
|
Despues de mucho batallar logre cargar de forma dinamica mis packages.
Pero tengo algunos problemas. La forma de cargar estos paquetes funciona asi:
Las lineas Free y UnloadPackage tuve que comentarlas, ya que cambié el showmodal, por un show. La idea de esto es que funcione como si fuera un archivo de Excel (por ejemplo), en donde pudiese cerrar, maximizar o ajustar el tamaño del form dentro del parent, en este caso un TPanel. Esto funciona bien, pero el problema es que si ejecuto mas de una vez la rutina me sigue cargando nuevos Forms... y no es lo que quiero. Por esto agregue unas lineas al comienzo...
esto con el afan de que si encuentra algun componente de tipo TForm (por ejemplo), en vez de crear nuevamente lo traiga al frente. El punto es que no funcionó, me percate, que cada vez que creo el Form le agrega al nombre original "_1", "_2", "_3", y asi sucecivamente... como puedo solucioanr esto. Por otro lado, tengo en el progrma principal 2 Tform, uno que es el con el comienza la aplicación, y el segundo un TdataModule. Ocurre que tengo 2 paquetes, y en cada uno de ellos lo tengo linkeado con la sentencia "uses", al unit del datamodulo. El punto es que como NO cierro estos paquetes, si tengo uno abierto y quisiera abrir el otro, me arroja un error que no se puede cargar el paquete, porque contiene un unit que está en otro paquete. Porque ocurre esto... como puedo solucionarlo. Espero me puedan ayudar. Saludos |
|
#4
|
||||
|
||||
|
Hola mjjj.
Veo que la cosas van avanzando... Te felicito, es un tema compejo, pero muy interesante, no te desanimes. Sería bueno que subieras un proyecto (Grupo de proyectos BPG) con lo que vas haciendo, para poder ir probando (no sólo yo, sino el resto de gente). Y sobre ese proyecto se pueden ir aciendo las modificaciones y los cambios. Revisemos... Cita:
Prueba este código en el With y verás:
Ahora la ejecución se detiene cuando está en pantalla en diálogo (es modal), cuando cierres el diálogo sigue y el form se destruye. Ok, ahora supongamos que comentas las líneas del Free y del UnloadPackage, con lo que los forms que creas no se destruyen. Cita:
También es imprescindible que el Owner del formulario creado sea el form actual, de otra forma el FindComponent no te lo encontrará. Prueba con este código:
Cita:
Un saludo.
__________________
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
|
|||
|
|||
|
Adjunto el proyecto simplificado para que puedan echarle una mirada.
Los problemas son los siguientes. 1.- Resolví el asunto que cargaba muchisimas veces un package, pero el problema es que al cerrar el formulario cargado por el paquete, y lo vuelvo a cargar, me arroja que no puedo enfocarme en una ventana invisible. 2.- Si cargo un paquete, y a continuación el segundo, me arroja que no se puede cargar el paquete porque contiene el unit conect, al cual el paquete cargado también hace referencia. Espero me puedan ayudar. Gracias. |
|
#6
|
|||
|
|||
|
Ahora si va el archivo.
Saludos. Última edición por mjjj fecha: 19-07-2010 a las 20:17:40. |
|
#7
|
||||
|
||||
|
Hola mjjj.
Te paso el ejemplo con algunas modificaciones. Tengo que marchar, así que no me puedo parar casi nada, luego si me da tiempo lo comento de forma más extensa. * He cambiado para que las consultas apunten al BDE (y poder probarlo) * En los formularios de los packages te falta el:
Para que el formulario se destruya. Si no lo que hace delphi por defcto es enconderlo (Hide), de ahí el error que te daba al abrilo la segunda vez. Luego más. Chao.
__________________
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. |
|
#8
|
|||
|
|||
|
Que formato tiene el archivo adjunto... no se con que abrirlo.
Me ayudas porfavor. Saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| FirebirdConfig ahora en Plugin para IBExpert | egostar | Noticias | 15 | 26-09-2008 22:45:17 |
| Plugin para outlook | fjardelphiyahoo | OOP | 1 | 18-09-2007 13:14:01 |
| ¿Como instalo plugin en IBexpert? | NPIdea | Firebird e Interbase | 1 | 22-06-2007 13:27:10 |
| Instalar Plugin en eclipse | Paoti | JAVA | 3 | 08-01-2007 20:47:23 |
| Que es un plugin? | chavetaz | Varios | 2 | 19-10-2004 14:41:29 |
|