System.TypInfo.SetPropValue
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 */;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure function |
public | System.TypInfo.pas System.TypInfo.hpp |
System.TypInfo | System.TypInfo |
説明
バリアント値を使ってコンポーネント プロパティの値を設定します。
SetPropValue は、Delphi の RTTI(Run Time Type Information:実行時型情報)を利用して、バリアント値によりコンポーネントのプロパティの値を設定します。
この関数の 1 つの形式では、オブジェクト インスタンスのプロパティは、PropInfo レコードによって定義されます。 GetPropInfo および GetPropList は、そのようなレコードを取得するために使用されます。
この関数の他の形式では、プロパティ名 PropName が明示的に与えられます。
この関数のどちらの形式でも、新規のプロパティ値は Value で定義されます。
大抵の場合、Value パラメータは、GetPropValue の戻り値となります。その他のバリアント値を使用した場合、バリアント データとプロパティ型の両方をチェックしなければなりません。
通常、バリアント型は、型 TObject、セット、メソッド ポインタ、クラスを保持できません。ただし、GetPropValue と SetPropValue は、これらの型を処理することができます。これらの場合では、SetPropValue は、型 TObject、セット、メソッド ポインタ、およびクラスのプロパティを変更することができます。
Value パラメータが GetPropValue の戻り値でなかった場合、プロパティ型が TObject、セット、メソッド ポインタ、クラスでなかった場合、結果は定義されません。
この関数の本来の価値は、プロパティの名前をハードコーディングせずに、コンポーネントのプロパティを設定できるようにすることです。 これは、実行時の大量のビジュアル コンポーネントの処理を可能にします。
メモ:
- 指定されたプロパティがなかった場合、または、公開プロパティでなかった場合、EPropertyError 例外が投げられます。
- バリアント型プロパティを設定するには、SetVariantProp を使用しなければなりません。