C++ Builder 参考手册 ➙ System ➙ TObject ➙ ClassInfo
头文件:#include <systobj.h>
命名空间:System
函数原型:
__classmethod void *__fastcall ClassInfo();
System::TObject::ClassInfo 是 System::TObject 的成员函数,返回运行时类型信息表 (RTTI table)。
- 返回运行时类型信息表 (RTTI table):(根据分析源码得到的) 返回的是 Typinfo::TTypeInfo * 类型的数据;
- 不是所有的类都提供 RTTI 信息表,如果没有提供,返回值为 NULL;
- 从 TPersistent 继承的类会提供 RTTI 信息表。
例:通过属性名称 (字符串) 获取属性的值:获取 Label1 控件的 L"Caption" 属性的值。
例子:通过属性名称 (字符串) 获取属性的值
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TObject *lpControl = Label1; // 获取这个控件的
UnicodeString sPropName = L"Caption"; // 这个属性的值
Typinfo::TTypeInfo *lpTypeInfo = (Typinfo::TTypeInfo *)lpControl->ClassInfo();
if(lpTypeInfo)
{
Typinfo::TPropInfo *lpPropInfo = Typinfo::GetPropInfo(lpTypeInfo, sPropName);
if(lpPropInfo)
{
UnicodeString sValue = Typinfo::GetStrProp(lpControl, lpPropInfo);
Memo1->Lines->Add(sValue);
}
}
}
运行结果:
运行结果:通过属性名称 (字符串) 获取属性的值
参考:
C++ Builder 参考手册 ➙ System ➙ TObject ➙ ClassInfo