Ver Mensaje Individual
  #9  
Antiguo 25-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Releyendo el mesaje original y para concretar ideas, lo que yo le recomendaría a adlfv es olvidarse de los paquetes dinámicos.

En la unidad UBD colocaría una función así:

Código Delphi [-]
unit UBD;

interface

function ObtenerBD: TBD;

implementation

var
  _BD: TBD;

function ObtenerBD: TBD;
begin
  if not Assigned(_BD) then _BD := TBD.Create;
  Result := _BD;
end;

initialization

  { nada aquí }

finalization
  _BD.Free;
end.

Es decir, en lugar de crear el objeto en la inicialización, se crea hasta la primera vez que se use.

Cualquier otro paquete que requiera de éste lo agregará (valga la redundancia) en su lista de paquetes requeridos.

La aplicación principal incluye UBD (cláusula uses) con lo cual puede usar libremente ObtenerBD (y por tanto _BD) sin necesidad de cargar explícitamente el paquete ni importar la función.

Y claro, usar la opción "Build with RunTime Packages" y agregar el paquete BD en la lista.

Con esto, la aplicación queda modularizada: se pueden hacer cambios a BD, recompilarlo y, sin necesidad de recompilar la aplicación, la nueva funcionalidad estará lista.

// Saludos
Responder Con Cita