Ver Mensaje Individual
  #2  
Antiguo 19-11-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.298
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por vinguel Ver Mensaje
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.
__________________
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.
Responder Con Cita