Источник:
// 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
, но из-за разных типов возврата это все еще три (целочисленные, строковые, логические) похожие функции(ничего похожего?), или вообще шесть функций, если я выбрасываю аргумент Direction и получаю наборы setkey
и getkey
, или key(overload: call set if 4-th parameter presents)
, (значение может быть пустым , поэтомупроверка значения не способ решить)
Любой способ сократить число функций и связать dynarray1 [v] .Element_Name с ключом, который может быть передан в GetValue ()?Какой-то подобный Reflection API для доступа к именам ключей?