1、SysUtils.LoadPackage(const name:string);
2、调用GetPackageInfo(Module: HMODULE; Param: Pointer; var Flags: Integer;
InfoProc: TPackageInfoProc);
InfoProc是回调函数
定义如下:proceudre infoProc(const Name: string; NameType: TNameType;Flags:Byte; Param: Pointer);
如果nameType等于ntContainsUnit,name就是包中的单元名.
3、
var
RegProc:procedure;
Nm:string;
begin
RegProc := GetProcAddress(Integer(Param), pchar('@' + Nm + '@Register$qqrv'));
if Assigned(RegProc) then
try
RegProc;
except
end;
end;
nm就是name,注意name第一个字母是大写,其他是小写.
Regproc过程就是调用Class单元中RegisterComponentsProc.
{自己定义一个过程}
RegCmpProc
(const Page: string;
const ComponentClasses: array of TComponentClass);
RegisterComponentsProc := RegCmpProc;
ComponentClesses就是单元中所有的类
读BPL文件加载类
最新推荐文章于 2024-08-29 10:55:50 发布