System.Classes.TPersistent.AssignTo

提供: Appmethod Libraries
移動先: 案内検索

Object Pascal

procedure AssignTo(Dest: TPersistent); virtual;

C++

virtual void __fastcall AssignTo(TPersistent* Dest);

プロパティ

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

説明

オブジェクトのプロパティをコピー先のオブジェクトにコピーします。

AssignTo メソッドをオーバーライドすることにより,コピー先となるオブジェクトの Assign メソッドの機能を拡張できます。これにより,それらのオブジェクトで新たに作成されたオブジェクトのクラスを処理できます。オブジェクトのクラスを新たに定義したときに,既存のすべてのオブジェクトの Assign メソッドをオーバーライドして,その新しいクラスに,それらのオブジェクトのプロパティをコピーできるようにします。新しいクラスのコピー先となる既存のクラスの AssignTo メソッドをオーバーライドしてください。

TPersistentAssign メソッドは,下位オブジェクトがプロパティのコピーに失敗した場合に,AssignTo メソッドを呼び出します。TPersistent で定義されている AssignTo メソッドは,EConvertError 例外を生成します。

たとえば,A と B がインスタンス変数であるとします。



A.Assign(B); {Delphi}



A->Assign(B); // C++



A が B の処理方法を知っていればその処理が実行されます。A が B の型を処理する方法を知らない場合,TPersistentAssign メソッドが実行され,以下の処理が呼び出されます。



B.AssignTo(A); {Delphi}



B->AssignTo(A); // C++



B が A へのコピー方法を知っていれば,割り当ては成功します。そうでない場合,TPersistent は例外を生成します。

関連項目