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

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

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

メモ:

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

関連項目