TObject::ClassType:返回类的类型信息
• 返回类的类型信息
• C++ 程序可以使用 dynamic_cast 或 InheritsFrom 来代替 ClassType 方法。
函数原型:
TClass __fastcall ClassType(void); |
头文件:
#include <System.hpp>
命名空间:
System
参数:
无
返回值:
类的类型信息
例:获取控件对象的类及这个类的祖先
以下代码获取 TObject *Sender 的类及这个类的父类、父类的父类…… 一直到最原始的祖先类,把这些类名按继承顺序显示在 Memo1 里面。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TClass c = Sender->ClassType();
while(c)
{
Memo1->Lines->Add(c->ClassName());
c = c->ClassParent();
}
} |
运行结果:
TButton
TCustomButton
TButtonControl
TWinControl
TControl
TComponent
TPersistent
TObject |
结果分析:
Button1Click 是 Button1 的点击事件,那么 Sender 就是 TButton 类的对象指针,指向 Button1,
所以从 Sender 直接获取到的类就是 TButton,
TButton 的父类是 TCustomButton,TCustomButton 的父类是 TButtonControl,…… 一直到他们的祖先 TObject 结束。
兼容性:
相关链接:
• TObject::ClassParent • TObject::ClassName • TObject::QualifiedClassName • TObject::ClassNameIs • TObject • VCL基础类
|