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
[-]
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...