System.Classes.TPersistent.Assign

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

Delphi

procedure Assign(Source: TPersistent); virtual;

C++

virtual void __fastcall Assign(TPersistent* Source);

プロパティ

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

説明

ほかの類似オブジェクトの内容をコピーします。

Assign メソッドを呼び出すと,プロパティをコピーしたり,オブジェクトの属性をほかのオブジェクトからコピーできます。Assign メソッドを呼び出す標準形式は次のとおりです。



Destination.Assign(Source); {Delphi}



Destination->Assign(Source); // C++



これは,Destination オブジェクトに Source オブジェクトの内容をコピーするように通知します。

ほとんどのオブジェクトは,Assign メソッドをオーバーライドして,ほかの類似オブジェクトからのプロパティの代入を処理します。Assign メソッドのオーバーライド時に,Destination オブジェクトが Source パラメータのクラスによるプロパティの代入を処理できない場合,継承メソッドを呼び出します。

オーバーライドした Assign メソッドが Source からのプロパティの代入を処理できない場合,TPersistent に実装された .Assign メソッドは,その Source オブジェクトの AssignTo メソッドを呼び出します。これにより,Source オブジェクトが代入を処理できるようになります。Source オブジェクトが nil(Delphi)または NULL(C++)の場合,Assign メソッドは EConvertError 例外を生成します。

一般に,次の文は,



Destination := Source; {Delphi}



Destination = Source; // C++



以下の文と同じではありません。



Destination.Assign(Source); {Delphi}



Destination->Assign(Source); // C++



代入演算子は,Destination の参照先を Source と同じオブジェクトにします。一方,Assign メソッドは,Source で参照するオブジェクトの内容を Destination で参照するオブジェクトにコピーします。

メモ:  いくつかのプロパティの型もオブジェクトです。これらのプロパティが,Assign_ メソッドを使ってプロパティの値を設定する書き込み専用メソッドを持っている場合,代入演算子は Assign メソッドと同じ働きをします。

関連項目