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 |
説明
名前を指定すると、クラス メソッドのアドレスを返します。
あらかじめメソッド名をハード コーディングせずに、オブジェクトのメソッドを呼び出すことができると、便利な場合があります。メソッド名 Name を文字列として指定することによって、そのメソッドのアドレスを動的に取得するには、MethodAddress を呼び出します。
このメソッドを呼び出す簡単な方法は、次のように、プロシージャまたは関数のデータ型を定義することです。
type TProc = procedure of object;
オブジェクト名と MethodAddress を TMethod 型の変数に代入します。
MethodVar.Data := Pointer(ObjectInstanceName); MethodVar.Code := ObjectInstanceName.MethodAddress('MethodNameString');
そして、プロシージャまたは関数の型の変数を呼び出す際に、これを渡します。
Proc := TProc(MethodVar); Proc;