System.Classes.TPersistent.AssignTo
Delphi
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 メソッドをオーバーライドしてください。
TPersistent の Assign メソッドは,下位オブジェクトがプロパティのコピーに失敗した場合に,AssignTo メソッドを呼び出します。TPersistent で定義されている AssignTo メソッドは,EConvertError 例外を生成します。
たとえば,A と B がインスタンス変数であるとします。
A.Assign(B); {Delphi}
A->Assign(B); // C++
A が B の処理方法を知っていればその処理が実行されます。A が B の型を処理する方法を知らない場合,TPersistent の Assign メソッドが実行され,以下の処理が呼び出されます。
B.AssignTo(A); {Delphi}
B->AssignTo(A); // C++
B が A へのコピー方法を知っていれば,割り当ては成功します。そうでない場合,TPersistent は例外を生成します。