C++ Builder 参考手册 ➙ TObject ➙ System ➙ ClassNameIs
头文件:#include <systobj.h>
命名空间:System
函数原型:
__classmethod bool __fastcall ClassNameIs(const UnicodeString Name);
System::TObject::ClassNameIs 是 System::TObject 的成员函数,判断一个字符串是否为这个类的类名。
- Name: 字符串,要判断的类名,不区分大小写;
- 返回值:true: 类名正确,是这个类的实际类名;
- 返回值:false: 类名不正确,父类的类名返回都是 false。
例:在事件里面判断产生事件的控件的类名
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Lines->Add(Sender->ClassNameIs(L"TButton") ? L"是 TButton" : L"不是 TButton");
Memo1->Lines->Add(Sender->ClassNameIs(L"tbutton") ? L"是 tbutton" : L"不是 tbutton");
Memo1->Lines->Add(Sender->ClassNameIs(L"TObject") ? L"是 TObject" : L"不是 TObject");
Memo1->Lines->Add(Sender->ClassNameIs(L"TControl") ? L"是 TControl" : L"不是 TControl");
Memo1->Lines->Add(Sender->ClassNameIs(L"TButtonControl") ? L"是 TButtonControl" : L"不是 TButtonControl");
}
运行结果:
- 类名不区分大小写;
- 只有实际类名为真,父类类名为假。
运行结果
参考:
- System::TObject::ClassName
- System::TObject::QualifiedClassName
- System::TObject::UnitName
- System::TObject::UnitScope
- System::TObject::ClassInfo
- System::TObject::ClassType
- System::TObject
- VCL 类继承关系
C++ Builder 参考手册 ➙ System ➙ TObject ➙ ClassNameIs