コンポーネントをリソースに保存する

例えば TreeViewコンポーネントの SaveToFile/SaveToStreamは各 Nodeに割り当てられている ImageIndexなどは保存しません。そこでコンポーネントまるごとリソースに保存してみては・・・と思いやってみたのですがうまく動作しました。
ただし別の保存したコンポーネントと読み込み先のコンポーネントは同一でないとエラーが出ます。また、プロパティはすべて保存されるので意外な結果が出る可能性もあります(例えば位置がずれたり)。

■ TreeViewをリソースに保存・読み込む例
  procedure TForm1.Button1Click(Sender: TObject);  
  begin
    //リソースに保存
    WriteComponentResFile('D:\A.res',TreeView1);
  end;

  procedure TForm1.Button2Click(Sender: TObject);
  begin
    //リソースから読み込み
    TreeView1.Items.Clear;
    ReadComponentResFile('D:\A.res',TreeView1);
  end;