System.TypInfo.SetPropValue

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

procedure SetPropValue(Instance: TObject; const PropName: string; const Value: Variant);
procedure SetPropValue(Instance: TObject; PropInfo: PPropInfo; const Value: Variant);

C++

extern DELPHI_PACKAGE void __fastcall SetPropValue(System::TObject* Instance, const System::UnicodeString PropName, const System::Variant &Value)/* overload */;

Propriétés

Type Visibilité  Source Unité  Parent
procedure
function
public
System.TypInfo.pas
System.TypInfo.hpp
System.TypInfo System.TypInfo

Description

Définit la valeur d'une propriété de composant en utilisant une valeur variant.

SetPropValue utilise la fonctionnalité RTTI (Informations de type à l'exécution) de Delphi pour définir la valeur d'une propriété d'un composant en utilisant une valeur variant.

Dans une forme de cette fonction, la propriété de l'instance d'objet est définie par un enregistrement PropInfo. GetPropInfo et GetPropList peuvent être utilisés pour obtenir un tel enregistrement.

Dans l'autre forme de cette fonction, le nom de la propriété, PropName, est donné explicitement.

Dans les deux formes de la fonction, la nouvelle valeur de la propriété est définie par Value.

Généralement, le paramètre Value est la valeur de retour de GetPropValue. Si vous utilisez toute autre valeur variant, vous devez vérifier les données de Variant et le type de la propriété.

Généralement, le type Variant ne peut pas conserver les types TObject, Set, pointeur de méthode et classe. Cependant, GetPropValue et SetPropValue peuvent gérer ces types. Dans ces cas, SetPropValue peut modifier les propriétés des types TObject, Set, pointeur de méthode et classe.

Si le paramètre Value n'est pas la valeur de retour de GetPropValue et le type de propriété est TObject, Set, pointeur de méthode ou classe, le résultat n'est pas défini.

La valeur intrinsèque de cette fonction est de permettre la définition des propriétés d'un composant sans devoir coder en dur le nom de la propriété. Cela permet un traitement des composants visuels de masse à l'exécution.

Remarques : 

  • Si la propriété spécifiée n'existe pas, ou si elle n'est pas une propriété publiée, une exception EPropertyError est déclenchée.
  • Pour définir une propriété de type Variant, vous devez utiliser SetVariantProp.

Voir aussi