System.TObject.MethodAddress
Delphi
class function MethodAddress(const Name: _ShortStr): Pointer; overload;
class function MethodAddress(const Name: string): Pointer; overload;
C++
__classmethod void * __fastcall MethodAddress(const ShortString &Name)/* overload */;
__classmethod void * __fastcall MethodAddress(const UnicodeString Name)/* overload */;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.pas systobj.h |
System | TObject |
説明
クラス メソッドのアドレスを名前で返します。
- メモ: MethodAddress は、公開されたメソッドにのみ使用することができます。
前もってメソッド名をハード コーディングせずにオブジェクト メソッドを呼び出せるようにすると、便利な状況があります。MethodAddress を動的に呼出すと、メソッドの名前を文字列で指定することで、そのようなメソッドのアドレスを取得することができます。
メソッドを呼び出す簡単な方法は、プロシージャまたは関数のデータ型を定義することで、次のようになります:
type TProc = procedure of object;
オブジェクト名と MethodAddress メソッドを、TMethod 変数に割り当てます:
MethodVar.Data := Pointer(ObjectInstanceName); MethodVar.Code := ObjectInstanceName.MethodAddress('MethodNameString');
呼出しの中で this をプロシージャまたは関数の型に渡します:
Proc := TProc(MethodVar); Proc;