TObject::InheritsFrom:当前对象的类是否从 AClass 继承过来的
当前对象的类是否从 AClass 继承过来的。
如果 AClass 是父类、父类的父类,…… 一直到祖先,返回为真。
函数原型:
__classmethod bool __fastcall InheritsFrom(TClass AClass); |
头文件:
#include <System.hpp>
命名空间:
System
参数:
AClass:类
返回值:
如果 AClass 是父类、父类的父类,…… 一直到祖先,返回为真,否则返回假。
例子:检查 Sender 指针是否为从 TWinControl 继承的类的指针
Button1 的 OnClick 事件里面,Sender 是指向 Button1 的指针,使用 TObject::InheritsFrom 方法和标准 C++ 的 dynamic_cast 的对比
使用 TObject::InheritsFrom 方法 |
使用标准 C++ 的 dynamic_cast |
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(Sender->InheritsFrom(__classid(TWinControl)))
{
ShowMessage(L"Sender 是从 TWinControl 继承而来的");
}
} |
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(dynamic_cast<TWinControl *>(Sender))
{
ShowMessage(L"Sender 是从 TWinControl 继承而来的");
}
} |
兼容性:
相关链接:
• TObject::ClassType • TObject::ClassName • TObject::QualifiedClassName • TObject::ClassNameIs • TObject • VCL基础类
|