0

ソース:

  // 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 引数を捨ててsetkeyand getkey、またはkey(overload: call set if 4-th parameter presents), (Value が許可されている空であるため、値を確認することは決定する方法ではありません)

関数の数を短縮し、dynarray1[v].Element_Name を GetValue() に渡すことができるキーに関連付ける方法はありますか? キー名にアクセスするための何らかのリフレクションのような API はありますか?

4

1 に答える 1

1

バリアントはより論理的です。リフレクション/RTTI 情報を取得できる場合 (たとえば、保存したいものはすべて公開されたプロパティです)、それも可能です。

しかし、カノンで蚊を撃つような1行関数の3つのバリアントのIMHO

于 2011-01-02T01:11:07.663 に答える