TObject::ClassInfo - C++ Builder

C++ Builder 参考手册 ➙ System ➙ TObject ➙ ClassInfo


头文件:#include
命名空间: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);
        }
    }
}

运行结果:

运行结果:通过属性名称 (字符串) 获取属性的值

参考:

  • System::TObject::ClassType
  • System::TObject
  • VCL 类继承关系

C++ Builder 参考手册 ➙ System ➙ TObject ➙ ClassInfo

你可能感兴趣的:(TObject::ClassInfo - C++ Builder)