Ver Mensaje Individual
  #8  
Antiguo 12-09-2019
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.289
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 bucanero Ver Mensaje
Uno de estos temas pendientes, por si alguien puede dar una solución es como utilizar las variables "globales" guardadas en las BPLs. En el ejemplo que he subido, la variable "dato" de la unidad plugins, es una de estas variables globales, la comparte la aplicación, y el plugin externo, pero en realidad en memoria son dos variables totalmente distintas, una para la aplicación y otra para el plugin, por que cuando el form del plugin modifica o guarda ese dato, la aplicación lo que lee es otra cosa totalmente distinta. A esto creo que es lo que se refiere oscarac:

Y esto afecta, digamos por ejemplo a que esa variable es por ejemplo un plugin con los tipos de IVA que va a usar nuestra aplicación, y a su vez lo van a usar otros plugins (ventas, clientes, articulos)
Lo primero decir que si estás utilizando plugins (con carga dinámica de packages) utilizar variables globales en el plugin (si luego debes accederlas desde fuera) me parece un error de concepto.

Tal y como tienes planteado el ejemplo, tienes definida la variable Dato en el "plugin base" (plugins.pas). Esto hace que la compilación te funcione correctamente, pero es lógico que al cargar el plugin en ejecución y crear el formulario esa variable quede vacía. Estás accedeiendo realmente a otra posición de memoria.

Creo que es mucho más fácil que eso; Ya que tienes montada toda la estructura para cargar los plugins, crear los formularios y mantenerlos. Pues utilizala para guardar la información que necesites. Desde el programa principal tienes una lista que almacenas plugins Creados/Cargados (ListBPL). Y además ya tienes creada una estructura que almacena datos (TPluginInfo) para cada pluging. Utilizala para almacenar lo que necesites y no tendrás problemas en acceder a esa información.




Te adjunto el ejemplo con una líneas modificadas para explicar lo que quiero decir.
Archivos Adjuntos
Tipo de Archivo: zip EjemploPlugin_modif.zip (17,0 KB, 15 visitas)
__________________
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