System.TObject.MethodAddress

提供: Appmethod Libraries
移動先: 案内検索

Object Pascal

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;

オブジェクト名と MethodAddressTMethod 型の変数に代入します。

MethodVar.Data := Pointer(ObjectInstanceName);
MethodVar.Code := ObjectInstanceName.MethodAddress('MethodNameString');

そして、プロシージャまたは関数の型の変数を呼び出す際に、これを渡します。

Proc := TProc(MethodVar);
Proc;

関連項目