De hecho, a veces tampoco me va ni así.
Mejor dicho, YA no me va.
Adjunto un ejemplo tontísimo.
Unidad que luego empaqueto (como Run-Time):
Código Delphi
[-]unit UClasePrueba;
interface
uses
Windows, Classes;
type
TClasePrueba = Class (TPersistent)
private
sNombre : String;
sEdad : Integer;
published
constructor Create(nombre: String; edad: Integer);
function GetNombre : String;
function GetEdad : Integer;
procedure SetNombre(const nombre: String);
procedure SetEdad(const edad: Integer);
end;
var
ClaseAitor : TClasePrueba;
implementation
constructor TClasePrueba.Create(nombre: String; edad: Integer);
begin
sNombre := nombre;
sEdad := edad;
end;
procedure TClasePrueba.SetNombre(const nombre: String);
begin
sNombre := nombre;
end;
procedure TClasePrueba.SetEdad(const edad: Integer);
begin
sEdad := edad;
end;
function TClasePrueba.GetNombre() : String;
begin
result:= sNombre;
end;
function TClasePrueba.GetEdad() : Integer;
begin
result:= sEdad;
end;
initialization
RegisterClass(TClasePrueba);
finalization
UnRegisterClass(TClasePrueba);
end.
Formulario que cargaría el .bpl y lo llamaría:
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
Paquete: HModule;
clase: TPersistentClass;
begin
Paquete := LoadPackage('C:\Documents and Settings\aillarra\Desktop\Package2.bpl');
if Paquete <> 0 then
begin
clase := GetClass('TClasePrueba');
if clase <> nil then
ShowMessage('Bien')
else
ShowMessage('La clase no está');
UnloadPackage(Paquete);
end;
end;
end.
Me dice que no encuentra esa clase.
Así que estoy en las mismas.
El hecho de que haga un .exe que en los use tenga los accesos a esos .bpl que como trabajo en local tienen los .dcu y demás y sabe de qué van se me escapa a la hora de distribuir y llevarme sólo el .exe y sus bpl.
¿Cómo sabe ese .exe nada de esos .bpl si no están registrados en ninguna parte?