Ver Mensaje Individual
  #6  
Antiguo 01-10-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Reputación: 25
maeyanes Va por buen camino
Hola...

Primero que nada, debes especificar bien que quieres hacer... vas a cargar los bpl's dinámicamente o quieres que la aplicación los cargue normalmente?

Por que si es lo primero, bastaría con que guardes la ruta de donde estarán los bpl's en algún archivo de configuración o el registro y cuando vayas a cargar un bpl, usas esa ruta para buscarlo.

Si quieres que sea normalmente, las bpl's tienen que estár en una carpeta que se encuentre dentro del PATH de Windows. PATH es una variable de ambiente global para Windows.

Para modificar esta variable desde Delphi puedes usar esta función:

Código Delphi [-]
// Forma de uso:
SetSystemEnvironmentVariable ('PATH', 'c:\windows;c:\programs\myapp');   

procedure SetSystemEnvironmentVariable (const name, value : string);
var
  rv : DWORD;

begin
  with TRegistry.Create do
  try
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey ('SYSTEM\CurrentControlSet\Control\SessionManager\Environment', False);
    WriteExpandString (name, value);
    SendMessageTimeout (HWND_BROADCAST, WM_SETTINGCHANGE, 0,
                      LParam (PChar ('Environment')),
                      SMTO_ABORTIFHUNG, 5000, rv);
    finally
      Free
    end
end;

Solo te advierto que esta función cambia todo el valor de la variable por uno nuevo y que esto puede ser desastroso para Windows.

También te comento que no es recomendable cambiar este valor dentro de tu aplicación. Esto mayormente se hace desde el proceso de instalación de las aplicaciones, ya que es una variable que no deberías modificar cada que tu aplicación inicie...



Saludos...
Responder Con Cita