常量定义(const)在D7及D7之前的版本,一般只能在单元里,以全局方式声明和定义。自D7之后的新版本,常量可以放在一个类里声明,比如放在 类的 public或private里。
有那么一种常量,你希望常量的名称和真实的常量值一样,比如,用于作配置文件的常量。当然,如果你不觉得辛苦,一般来说,常量名和常量值逐个敲出来,也无可厚非。但是,如果你还在使用D2010作开发而不发挥新RTTI技术,很显然,你已经Out了,不随波逐流使用新技术,连“走马观花”赏花的机会也没有。
为了方便管理常量,我们需要声明一个记录类型。为啥使用记录类型而不是类呢?因为记录类型不用创建和释放,其次,记录比类更节省系统资源。
//参数的名称信息,用于常量设置,都是字符串
TParamName = record
Socket:string;
System:string;
DBConfig:string;
//通讯参数
ThreadCount:string;
Port:string;
SessionLife:string;
TimeOut:string;
ZipRate:string;
Encrypt:string;
//系统参数
AutoRun:string;
SocketLog:string;
BusinessLog:string;
DBLog:string;
//数据库配置
Server:string;
Provider:string;
DataBase:string;
DBPort:string;
UserName:string;
UserPswd:string;
Pooling:string;
PoolMax:string;
PoolMin:string;
PoolLife:string;
end;
------------我们使用一个新的方法管理 记录类型的 RTTI--------------------------------------
uses RTTI;
function TRttiInfo.SetRecordDeftValue(TypeInfoValue, RecValue: Pointer): Boolean;
var
RTX:TRttiContext;
RT:TRttiType;
RF:TRttiField;
iCount:Integer;
begin
Result := False;
try
RTX := TRttiContext.Create;
RT := RTX.GetType(TypeInfoValue);
iCount := 0;
for RF in RT.AsRecord.GetFields do
begin
RF.SetValue(RecValue,RF.Name);
Inc(iCount);
end;
Result := iCount >0;
finally
RTX.Free;
end;
end;
--------------调用就非常简单,需要指针来辅助参数传输了---------------
var
SysParamName:TParamName ;//记录声明
调用:
RttiInfo.SetRecordDeftValue(TypeInfo(TParamName),@SysParamName);
1、 由于记录类型是一个抽象的类型,没有具体的类型名,因此需要借助 TypeInfo来获取类型信息
2、通过 @SysParamName 获取指定记录的地址。
很简单吧,希望能对你有点帮助!
分享到:
相关推荐
Delphi的RTTI机制文档
delphi RTTI功能示例 演示如何在delphi 中使用rtti
Delphi 利用RTTI实现的插件管理模块,插件可自动注册。
Delphi通过RTTI实现TdxDBGrid,TDBGrid标题,列宽,显示顺序,字体大小颜色等动态配置
用DELPHI的RTTI实现对象的XML持久化
通过delphi的RTTI机制建立类的方法建立rttiinspector属性编辑框,从而自己随心使用
用DELPHI的RTTI实现数据集的简单对象化
写得很好,用心看 Delphi_的RTTI机制浅探
例如: Employee := TDatasetProxy(aDataset); 就可以随时随地获取和编辑当前dataset-Fields的数据 edtEmployee.Text := Employee.emp_name.Value; Employee.BeginEdit; Employee.emp_name.Value := edtEmployee....
Delphi_的RTTI机制浅探
DELPHI RTTI 探索 RTTI(Run-Time Type Information) 翻译过来的名称是“运行期类型信息”,也就是说可以在运行期获得数据类型或类(class)的信息。
Delphi 2010 Handbook: A Guide to the New Features of Delphi 2010; upgrading from Delphi 2009 (Volume 1) 318 pages Publisher: CreateSpace (February 28, 2010) Language: English ISBN-10: ...
Delphi-的RTTI机制浅探.doc
这是个示例源码,学习自已查找RTII信息,供初学者参考。
Title: Delphi 2010 Handbook: A Guide to the New Features of Delphi 2010 Author: Marco Cantù Length: 318 pages Edition: 1 Revised Language: English Publisher: CreateSpace Independent Publishing ...
了解魔术般的技巧:RTTI初学者指南.flv
Delphi7.0 向XML中添加RTTI信息,这个例子挺简单,希望大家喜欢,面向Delphi新手的,高手请绕道哦,下面是本例Delphi向XML中添加RTTI信息的关键性代码: procedure TForm1.ComponentToDOM(iNode: IXmlNode; Comp: ...