博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过INI文件实现HYDRA各插件间对象共享
阅读量:6525 次
发布时间:2019-06-24

本文共 1557 字,大约阅读时间需要 5 分钟。

type TLoginUser = record //登陆用户结构

   id: string;

   name: string;

   ruleid: string;

   rulename: string;

   pwd: string;

end;

 

PShareObjectRecord = ^TShareObjectRecord;

TShareObjectRecord = record //共享对象结构

   Connection: TADOConnection;

   LoginUser: TLoginUser;

end;

 

var

   G_PShareObjectRecord: PShareObjectRecord;//全局共享对象指针

 

system.ini //ini文件保存共享结构的指针值

 [pointer]

shareobj=13609472

 

//把共享的对象指针传入全局共享结构内

 G_PShareObjectRecord^.Connection := ADOConnection1;

with G_PShareObjectRecord.LoginUser do //记录登录用户资料

begin

id := FindField('id').AsString; name := FindField('name').AsString;

 ruleid := FindField('ruleid').AsString;

 rulename := FindField('rulename').AsString;

 pwd := FindField('pwd').AsString;

end;

 

 procedure THostForm.FormShow(Sender: TObject);//保存全局共享对象结构的指针

var ini: TIniFile;

path: string;

begin

path := ExtractFilePath(Application.ExeName) + 'system.ini';

ini := TIniFile.Create(path);

 ini.WriteInteger('pointer', 'shareobj', THandle(G_PShareObjectRecord));

 ini.Free;

end;

 

//取共享对象

 function GetConnection: TADOConnection;

var

 ini: TIniFile;

path: string;

p: Integer;

begin

path := ExtractFilePath(Application.ExeName) + 'system.ini';

ini := TIniFile.Create(path);

 p := ini.ReadInteger('pointer', 'shareobj', 0);

Result := PShareObjectRecord(THandle(p))^.Connection;

 ini.Free;

end;

 

 function GetLoginUser: TLoginUser;

var

 ini: TIniFile;

 path: string;

p: Integer;

 begin

path := ExtractFilePath(Application.ExeName) + 'system.ini';

ini := TIniFile.Create(path);

 p := ini.ReadInteger('pointer', 'shareobj', 0);

Result := PShareObjectRecord(THandle(p))^.LoginUser;

ini.Free;

end;

转载地址:http://zznbo.baihongyu.com/

你可能感兴趣的文章
动态规划算法
查看>>
WebService学习总结(二)——WebService相关概念介绍
查看>>
泥鳅般的const(一个小Demo彻底搞清楚)
查看>>
Pyqt 打开外部链接的几种方法
查看>>
JavaScript DOM编程艺术学习笔记(一)
查看>>
event.srcElement获得引发事件的控件(表单)
查看>>
ASP.NET MVC铵钮Click后下载文件
查看>>
SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别
查看>>
基本数据结构 - 栈和队列
查看>>
Linux软中断、tasklet和工作队列
查看>>
如何解决ORA-28002 the password will expire within 7 days问题(密码快过期)
查看>>
Asp.Net Core 轻松学-利用日志监视进行服务遥测
查看>>
LightSwitch社区资源搜集
查看>>
Android通讯录查询篇--ContactsContract.Data 二(续)
查看>>
IT人的自我导向型学习:开篇杂谈
查看>>
[原创]BizTalk动手实验系列目录
查看>>
HDU 4611Balls Rearrangement(思维)
查看>>
[LeetCode] Majority Element II
查看>>
minGW, cygwin, GnuWin32【C++的跨平台交叉编译问题】
查看>>
我的Dll(动态链接库)学习笔记(转)
查看>>