喫茶XRAYトップページ

[スレッド全体
]

[11118] Re:コンポーネントの保存返信 削除
2017/4/19 (水) 09:05:35 おかぽん
▼ Mr.XRAYさん

Published でないプロパティの保存と読み込み
http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Published_%E3%81%A7%E3%81%AA%E3%81%84%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%E3%81%AE%E4%BF%9D%E5%AD%98%E3%81%A8%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF

やりたいことは、こういうことでは・・・ない・・・?


MemoryStream.WriteComponentで、書き出しされているところまでは確認しました。

type
  TStringGrid=class(Grids.TStringGrid)
  protected
    procedure DefineProperties(Filer: TFiler); override;
    procedure ReadValues(Reader : TReader);
    procedure WriteValues(Writer : TWriter);
  end;

procedure TStringGrid.DefineProperties(Filer: TFiler);
begin
  inherited DefineProperties(Filer);
  Filer.DefineProperty('CellString', ReadValues, WriteValues, True);
end;
procedure TStringGrid.ReadValues(Reader : TReader);
begin
  Reader.ReadListBegin;
  Cells[1,1] := Reader.ReadString;
  Cells[1,2] := Reader.ReadString;
  Reader.ReadListEnd;
end;
procedure TStringGrid.WriteValues(Writer : TWriter);
begin
  Writer.WriteListBegin;
  Writer.WriteString(Cells[1,1]);
  Writer.WriteString(Cells[1,2]);
  Writer.WriteListEnd;
end;



[11119] Re2:コンポーネントの保存返信 削除
2017/4/19 (水) 10:34:37 Mr.XRAY
▼ おかぽんさん.どうもです.

> Published でないプロパティの保存と読み込み
> http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Published_%E3%81%A7%E3%81%AA%E3%81%84%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%E3%81%AE%E4%BF%9D%E5%AD%98%E3%81%A8%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF
>
> やりたいことは、こういうことでは・・・ない・・・?


おおっ,TWriter, TReader ですね.
↓ には
『published 以外のプロパティの保存には,特別な方法が必要です
(拙作のコンポーネントでは使用しています).』
としか書いてないんです.

[130] [01_オブジェクトの保存と読み出し]
http://mrxray.on.coocan.jp/Delphi/plSamples/130_SaveComponent.htm#01

Halbow 資料館には TWriter, TReader 使ったコードがあるんですが,
折角サンプルコードを頂いたので,これも掲載しちゃおうかな.
タイトルは「published 以外のプロパティの保存方法」とか...


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82