主页C++ Builder 资料C++ Builder 参考手册VCL 基础类TObject
C++ Builder 串口控件
C++ Builder 编程技巧
C++ Builder 操作指南
C++ Builder 参考手册
基础知识
cfloat 浮点数
cmath 数学函数
cstdlib 标准库函数
System 字符串
System 日期和时间
System.Math.hpp 数学函数
其他数据类型
VCL 基础类
 • TObject
   · 方法
   · TObject
   · ~TObject
   · Free
   · DisposeOf
   · InitInstance
   · NewInstance
   · InstanceSize
   · FreeInstance
   · CleanupInstance
   · ClassType
   · ClassName
   · ClassNameIs
   · QualifiedClassName
   · UnitName
   · UnitScope
   · ClassParent
   · ClassInfo
   · InheritsFrom
   · MethodAddress
   · MethodName
   · FieldAddress
   · GetInterface
   · GetInterfaceEntry
   · GetInterfaceTable
   · Equals
   · GetHashCode
   · ToString
   · SafeCallException
   · AfterConstruction
   · BeforeDestruction
   · Dispatch
   · DefaultHandler
 • TPersistent
 • TInterfacedPersistent
 • TComponent
 • TControl
 • TGraphicControl
 • TGraphicsObject
VCL 应用程序
Pictures 图片
Graphics 绘图
Additional 控件
System 控件
A ~ Z 字母顺序排列的目录
网友留言/技术支持
TObject::ClassType - 返回类的类型信息

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 结束。

兼容性:

函数 \ C++ Builder 编译器 bcc32 clang32 clang64
TObject::ClassType

相关链接:

TObject::ClassParentTObject::ClassNameTObject::QualifiedClassNameTObject::ClassNameIsTObjectVCL基础类

◤上一页:CleanupInstance下一页:ClassName

C++ 爱好者 -- Victor Chen 的个人网站 www.cppfans.com 辽ICP备11016859号