来源:
// write
Path := 'Data/_prefixed' + dynarray1[v].Name;
with XMLConfig1 do begin;
SetValue(Path + '/RealName', dynarray1[v].Name);
end;
..
// read
Path := 'Data/_prefixed' + listOfVars.Strings[v];
with XMLConfig1 do begin;
dynarray1[v].Name := GetValue(Path + '/RealName', '');
end;
我考虑编写简单的宏,例如:
procedure getsetkey(Keyname,Var:string; var Value: **overloaded**; Direction: integer);
getset('Data/_prefixed'+Keyname, Var
但由于不同的返回类型,它仍然是三个(整数、字符串、布尔值)类似的函数(不像?),或者曾经有六个函数,如果我抛出方向参数并得到一组setkey
and getkey
,或者,(允许key(overload: call set if 4-th parameter presents)
值为空,因此检查值不是决定的方法)
有什么方法可以缩短函数的数量并将 dynarray1[v].Element_Name 与可能传递给 GetValue() 的键相关联?某种类似反射的 API 来访问键名?