为了方便的公共全局对象库,我将我的使用方式贴出来
步骤如下
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 这个方法得到的对象,框架自动释放
