Cita:
Empezado por vinguel
Estoy haciendo un proyecto con BPL's dinamicas,
La idea es que una vez este bien montado el Main, creará el menú y llamara a los distintos formularios de forma totalmente dinamica.
El problema con el que me encuentro es que si uso una unit, en la que tengo variables globales y funciones comunes, en dos BPL's y las cargo, la segunda no me deja hacer el Load.
He intentado poner esa unit en una bpl dinamica a parte y hacer el load en el onshow del main, pero cuand uso las variables o las funciones en las distintas bpl's, como no ven esa unit, da error de compilacion.
|
Hola Vinguel.
Creo que se soluciona colocando las cosas comunes en una BPL independiente (la llamaremos BPL BASE).
Supongamos que tienes 2 BPL's dinámicas BPL_A y BPL_B.
En mi caso lo que hago es que, como te he comentado, las cosas comunes están definidas en la BPB BASE. Tanto BPL_A como BPL_B están linkadas de forma estática a BPL BASE, de forma que usas las units de BPL BASE es los USES de BPL_A o BPL_B.
Cuando cargas de foma dinámica BPL_A o BPL_B, automáticamente se carga BPL BASE (sin hacer nada especial), pues está "linkada" de forma estática. Si ya has cargado BPL_A (esta a su vez habrá cargado BPL BASE), cuando cargas BPL_B ya no se carga, pues ya está en memoria.
Otra opción de carga es que el programa principal (el EXE) carge BPL BASE (de forma dinámica o estática), de esta forma cuando se cargan las otras BPL's de forma dinámica (BPL_A y BPL_B) encuentran que BPL BASE ya está cargada y no tendrán problemas para acceder a ella.
Ya se que es un poco "lioso" y espero no haerte dejado peor de lo que estabas, pero si estás trabajando con BPL's creo que me entenderás. Si no te aclaras dímelo e intento generar un pequeño ejemplillo...
Un saludo.