System.Classes.TReader.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 TReader

説明

TReader オブジェクトが published プロパティであるかのように読み出すバイナリデータを定義します。

DefineBinaryProperty メソッドは,格納する必要があるデータを持つオブジェクトの DefineProperties メソッドによって内部的に呼び出されます。アプリケーションでは,大きなカスタムデータ(ビットマップなど)を持つコンポーネントの DefineProperties メソッドをオーバーライドするときに,DefineBinaryProperty メソッドを直接呼び出します。これが,DefineBinaryProperty(または DefineProperty)が使用される唯一の状況です。

DefineProperties メソッドは汎用ファイラオブジェクトをパラメータにとります。バイナリデータを読み出す場合,DefineProperties メソッドは TReader オブジェクトをとり,その DefineBinaryProperty メソッドを呼び出します。DefineBinaryProperty メソッドは,プロパティの名前とそのデータを読み出し,データを指定の ReadData メソッドに渡します。

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

ReadData パラメータと WriteData パラメータは,Stream パラメータとして渡されるストリームに対してバイナリ形式で表現されているオブジェクトのデータを直接読み書きする手続き(コンポーネントオブジェクトで定義)を示します。TReader オブジェクトの場合,WriteData パラメータは無視されます。

HasData パラメータは「偽の」プロパティが格納する(書き込む)データを持つかどうかを実行時に指定します。TReader オブジェクトの場合,HasData パラメータは無視されます。

バイナリプロパティを定義することはほとんどありません。 ただし,オブジェクトが DefineProperty メソッドを使用する方が一般的です。DefineProperty メソッドとは異なり,DefineBinaryProperty メソッドでは,コンポーネントは,ファイラオブジェクトを介するのではなくメモリストリームオブジェクトに対してバイナリプロパティを直接読み出します。バイナリデータもテキストと同様に編集が難しいデータです。

メモ:  TPersistent オブジェクトから派生しているストリーム可能なオブジェクトは DefineProperties メソッドを継承しますが,DefineProperties メソッドは TComponent までは何もしません。このため,バイナリデータを読み出す場合にリーダーオブジェクトの DefineBinaryProperty メソッドを呼び出すのは,コンポーネントの DefineProperties メソッドです。

関連項目