System.TObject.MethodAddress

提供: RAD Studio API Documentation
移動先: 案内検索

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;

関連項目