System.Rtti.TInterceptBeforeNotify
Delphi
TInterceptBeforeNotify = reference to procedure(Instance: TObject;
Method: TRttiMethod; const Args: TArray<TValue>; out DoInvoke: Boolean;
out Result: TValue);
C++
__interface TInterceptBeforeNotify : public System::IInterface
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
anonMethod class |
public | System.Rtti.pas System.Rtti.hpp |
System.Rtti | System.Rtti |
説明
System.Rtti.TVirtualMethodInterceptor.OnBefore イベント ハンドラ手続きの型です。
TInterceptBeforeNotify を使用すると、継承したメソッドを呼び出さないよう OnBefore イベント ハンドラを実装することができます。
DoInvoke
を False に設定すると、継承した仮想メソッドが呼び出されなくなります。True に設定すると(デフォルト)、呼び出しが行われます。
Args
は、仮想メソッドに渡された引数のリストです。
この配列の Values
を変更すると、継承した実装に渡された引数を変更することができます。
Method
は、インスタンスに対して呼び出された仮想メソッドに対応する RTTI オブジェクトです。
DoInvoke を False に設定した場合(継承した実装が使用されない)、Result
にはメソッドに要求される戻り値を設定しなければなりません。 そのデフォルト値は TValue.Empty であり、これは 0、nil、''、または戻り値型に対応する空の値に変換されます。
Instance
は、仮想メソッドが呼び出された先のインスタンスです。