Ver Mensaje Individual
  #12  
Antiguo 13-09-2019
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
Post

Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
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.
¡¡¡Gracias Neftali por responder!!!

He estado haciendo pruebas y el tema que veo es que los Packages que se cargan de forma automática (estaticos) en el proyecto van a un bloque de memoria y los que se cargan de forma dinámica van a otro bloque de memoria distinta, entonces si un mismo package, en mi caso la unidad plugins.pas, se utiliza de ambas formas tanto en paquetes estáticos como dinámicos, en realidad hay dos instancia totalmente distintas de estos datos, y cuando intentan interactuar entre ellos no se ven.

En las distintas pruebas que he estado haciendo dentro de los paquetes cargados de la misma manera, sean dinámicamente o estáticamente y siempre que no se mezclen esos paquetes, entonces parece que las variables "globales" si que se pueden compartirse sin problemas.

El tema de utilizar estas variables globales es por ejemplo, el caso mas básico, un paquete con las conexiones de acceso a la base de datos, que lo va a utilizar el resto de paquetes:

Código Delphi [-]
PackageConnection [---
   Unit DMConnections;
   interface
   type
     TDMConnection = class(TDataModule)
...
     end;

  var
    DMConnection :TDMConnection; /// Instancia a la conexión de la BBDD
  ...
   end.
---]

PackageClientes [---
   Unit DMClientes;
   interface
   type
     TDMClientes = class(TDataModule)
  ...
     end;

   implementation       

   uses DMConnections; /// acceso a la instancia a la conexión a la BBDD
   ...
   end.
---]

Seguiré haciendo mas pruebas para verificar que no hace cosas extrañas
Gracias a todos por la ayuda!!
Responder Con Cita