System.TypInfo.SetPropValue

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

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、セット、メソッド ポインタ、クラスを保持できません。ただし、GetPropValueSetPropValue は、これらの型を処理することができます。これらの場合では、SetPropValue は、型 TObject、セット、メソッド ポインタ、およびクラスのプロパティを変更することができます。

Value パラメータが GetPropValue の戻り値でなかった場合、プロパティ型が TObject、セット、メソッド ポインタ、クラスでなかった場合、結果は定義されません。

この関数の本来の価値は、プロパティの名前をハードコーディングせずに、コンポーネントのプロパティを設定できるようにすることです。 これは、実行時の大量のビジュアル コンポーネントの処理を可能にします。

メモ:

  • 指定されたプロパティがなかった場合、または、公開プロパティでなかった場合、EPropertyError 例外が投げられます。
  • バリアント型プロパティを設定するには、SetVariantProp を使用しなければなりません。

関連項目