System.Classes.TPersistent.Assign
Delphi
procedure Assign(Source: TPersistent); virtual;
C++
virtual void __fastcall Assign(TPersistent* Source);
Propriétés
| Type | Visibilité | Source | Unité | Parent |
|---|---|---|---|---|
procedure function |
public | System.Classes.pas System.Classes.hpp |
System.Classes | TPersistent |
Description
Copie le contenu d'un autre objet similaire.
Appelez Assign pour copier les propriétés ou d'autres attributs d'un objet sur un autre. Le format standard d'un appel à Assign est :
Destination.Assign(Source); {Delphi}
Destination->Assign(Source); // C++
indique à l'objet Destination de copier sur lui-même le contenu de l'objet Source.
La plupart des objets redéfinissent Assign pour gérer l'affectation des propriétés à partir d'objets similaires. Lors de la surcharge d'Assign, appelez la méthode héritée si l'objet de destination ne peut pas gérer l'affectation des propriétés à partir de la classe du paramètre Source.
Si aucune méthode Assign redéfinie ne peut gérer l'affectation des propriétés à partir de Source, la méthode implémentée dans TPersistent appelle la méthode AssignTo de l'objet source. Ceci permet à l'objet source de gérer l'affectation. Si l'objet Source vaut nil (Delphi) ou NULL (C++), Assign déclenche une exception EConvertError.
En général, l'instruction
Destination := Source; {Delphi}
Destination = Source; // C++
n'est pas identique à l'instruction
Destination.Assign(Source); {Delphi}
Destination->Assign(Source); // C++
En effet, l'opérateur d'affectation fait que Destination désigne le même objet que Source, alors que la méthode Assign copie le contenu de l'objet référencé par Source dans l'objet référencé par Destination.
Remarque : Les types de certaines propriétés sont aussi des objets. Si ces propriétés ont des méthodes écrites utilisant Assign pour définir la valeur de la propriété, alors dans ces cas l'opérateur d'affectation effectue la même chose que la méthode Assign.