2
我的應用程序動態加載提供我需要的對象實現的包。我有一個全局函數用來在我用來動態創建實例的列表結構上註冊對象類。初始化時獲取當前包名
procedure RegisterObjectStd(const APackageName, AObjectName: string; const AClass: TClass);
由此我可以通過工廠方法創建引用到特定上下文實例
實施例:
function CreateObject(const APackageName, AObjectName: string): TObject;
有一種方法來dinamically檢索當前包的名稱(。 bpl)在我的初始化代碼?
initialization
RegisterObjectStd(GetCurrentBplName, 'MyObjectName', TMyObjectClass);
'GetModuleName(HInstance)'怎麼辦? –
可能會得到可能不等於包名的文件名。一個很好的例子是版本化的軟件包。例如,名爲'rtl'的軟件包可能有一個像'rtl210.bpl'這樣的文件名。 –