設定ファイルから読み出すような仕掛けはこれでいい。
逆に保存したい場合、pulished なプロパティ一覧が無ければ魅力は半減だ。
また、自作のスクリプトで利用したいような場合、 SetPropValueは遅い。
事前に全プロパティのアドレスやアクセスメソッドを列挙しておく必要がある。

こういう時は TypInfo を眺めてみよう。 探し物はすぐに見つかるだろう。
function GetPropList(AObject: TObject; out PropList: PPropList): Integer;

説明の必要もないだろうが利用する時はこんな感じだ
var PropList: PPropList;
var i,siz:Integer;
begin
  siz:=GetPropList(Self, PropList);
  for i:=0 to siz-1 do
  Memo1.Lines.Add( (PropList^)[i]^.name );

どういう型であるかを知るには
PropList^)[i]^.PropType^^.Kind

これで型を知った後、例えばIntegeの値を得るには
  GetOrdProp(object , (PropList^)[i]^ )
を呼び出すだけだ。