TObject::MethodName:通过方法的地址返回函数名称
通过方法的地址返回函数名称。
函数原型:
__classmethod UnicodeString __fastcall MethodName(void *Address); |
头文件:
#include <System.hpp>
命名空间:
System
参数:
Address:成员函数的地址,即 __closure 指针转为 TMethod 对象之后的 TMethod 的 Code 成员,这和 MethodAddress 方法得到的地址是一样的,这个函数和 MethodAddress 函数互为逆运算。
返回值:
成员函数的函数名,如果成员函数在 __published: 访问权限区域;
空字符串,如果成员函数不在 __published: 访问权限区域,或者这个地址不是这个对象的成员函数。
例子:
class TMyObject : public TObject
{
__published:
virtual void __fastcall Func(void)
{
ShowMessage(L"Number = " + IntToStr(Number));
}
public:
int Number;
};
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TMyObject *Obj = new TMyObject;
Obj->Number = 12345;
void __fastcall (__closure *p)(void) = &Obj->Func;
TMethod *Method = (TMethod *)&p;
ShowMessage(L"函数名:" + Obj->MethodName(Method->Code));
delete Obj;
}
//--------------------------------------------------------------------------- |
兼容性:
相关链接:
• MethodAddress • FieldAddress • TObject::ClassType • TObject::ClassName • TObject • VCL基础类
|