System.Classes.TWriter.DefineBinaryProperty

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

procedure DefineBinaryProperty(const Name: string;  ReadData, WriteData: TStreamProc; HasData: Boolean); override;

C++

virtual void __fastcall DefineBinaryProperty(const System::UnicodeString Name, TStreamProc ReadData, TStreamProc WriteData, bool HasData);

プロパティ

種類 可視性 ソース ユニット
procedure
function
public
System.Classes.pas
System.Classes.hpp
System.Classes TWriter

説明

パブリッシュプロパティの値であるかのように形式化されていないデータを処理し,それを直接メモリストリームに書き込みます。

DefineBinaryProperty メソッドは,格納する必要があるデータを持つオブジェクトの DefineProperties メソッドによって内部的に呼び出されます。DefineProperties メソッドは汎用ファイラオブジェクトをパラメータにとります。

バイナリデータを書き込む場合,DefineProperties メソッドは TWriter オブジェクトを受け取り,その DefineBinaryProperty メソッドを呼び出します。DefineBinaryProperty は HasData パラメータが true の場合にのみプロパティ名およびそのデータを書き込みます。それ以外の場合は,何も実行しません。

Name パラメータは,ストリームに書き込む「偽の」プロパティの名前を指定します。「偽の」プロパティとは,パブリッシュになっておらず,DefineBinaryProperty メソッドのコードとして存在しているだけのプロパティです。非ビジュアルコンポーネントの Top プロパティおよび Left プロパティは「偽の」プロパティの例です。これらのプロパティは,「定義済みプロパティ」や「カスタム定義済みプロパティ」という名称でも呼ばれます。

TStreamProc 型は ReadData パラメータおよび WriteData パラメータ型です。TStreamProc 型は,Stream パラメータで渡されるストリームで直接オブジェクトのデータのバイナリ表現を読み書きする手続き関数(格納オブジェクトで定義されます)を指すメソッドポインタ型です。TWriter の場合,ReadData パラメータは無視されます。

HasData パラメータは「偽の」プロパティが格納する(書き込む)データを持つかどうかを実行時に指定します。

バイナリプロパティを定義することはほとんどありません。バイナリデータとしてグラフィックを格納する持続的オブジェクトが,データの格納および取得するためのファイラオブジェクトの最も一般的な利用法です。ただし,オブジェクトが DefineProperty メソッドを使用する方が一般的です。DefineBinaryProperty メソッドと DefineProperty メソッドの相違点は,DefineBinaryProperty メソッドの場合,コンポーネントがファイラオブジェクトを介すのではなく,メモリストリームに直接バイナリプロパティを読み書きすることです。

メモ:  TPersistent の下位のストリーム可能なオブジェクトは DefineProperties メソッドを継承しますが,DefineProperties メソッドは TComponent が呼び出されるまで何もしません。バイナリデータを書き出すときにライターの DefineBinaryProperty メソッドを呼び出すのは,TComponent の DefineProperties メソッドです。

関連項目