为了方便的公共全局对象库,我将我的使用方式贴出来
步骤如下
1
下载 mybean 框架
必须要用到plugmap这个插件 由于在各个dll之间共享对象库,所以个dll必须带包编译
2 建立公共对象库目录
新建一个单元文件 data.pas
TData2 = class private FHandle: THandle; FName:string; public property Handle: THandle read FHandle write FHandle; property Name: string read FName write FName; end;
3 存放对象
var lvObj:TData2; begin lvObj := TData2.Create; lvObj.Handle:=123456; TMyBeanMapTools.setObject('data2', lvObj); ShowMessage('存放全局对象成功,你可以在其他插件中获取该对象'); end;
4 使用对象
var lvObj:TData2; begin lvObj := TData2(TMyBeanMapTools.getObject('data2')); if lvObj = nil then raise Exception.Create('对象仓库中没有找到对象的对象!'); ShowMessage(IntToStr(lvObj.Handle)); // TMyBeanMapTools.removeAndFreeObject('data2');可以这样提前释放 end;
存放对象 和使用对象 可以在不同的Dll中
5 关于内存释放的问题
TMyBeanMapTools.setObject 这个方法得到的对象,需要使用者释放
TmBeanFrameVars.setObject 这个方法得到的对象,需要使用者释放
TmBeanFrameVars.getBean 这个方法得到的对象,框架自动释放