System.TObject.MethodAddress
From RAD Studio VCL Documentation (Japanese)
Contents |
Delphi の情報
ファイル System.pas
class function MethodAddress(const Name: ShortString): Pointer; overload; class function MethodAddress(const Name: string): Pointer; overload;
ユニット: System
種類: メソッド
可視性: public
所属クラス: TObject
C++ の情報
ファイル System.hpp
__classmethod void * __fastcall MethodAddress(const System::SmallString<255> & Name); __classmethod void * __fastcall MethodAddress(System::UnicodeString Name);
ユニット: System
種類: メソッド
可視性: public
所属クラス: TObject
説明
名前を指定すると、クラス メソッドのアドレスを返します。
あらかじめメソッド名をハード コーディングせずに、オブジェクトのメソッドを呼び出すことができると、便利な場合があります。メソッド名 Name を文字列として指定することによって、そのメソッドのアドレスを動的に取得するには、MethodAddress を呼び出します。
このメソッドを呼び出す簡単な方法は、次のように、プロシージャまたは関数のデータ型を定義することです。
type TProc = procedure of object;
オブジェクト名と MethodAddress を TMethod 型の変数に代入します。
MethodVar.Data := Pointer(ObjectInstanceName);
MethodVar.Code := ObjectInstanceName.MethodAddress('MethodNameString');
そして、プロシージャまたは関数の型の変数を呼び出す際に、これを渡します。
Proc := TProc(MethodVar);
Proc;