TObject::QualifiedClassName - C++ Builder

C++ Builder 参考手册SystemTObjectQualifiedClassName


头文件:#include <systobj.h>
命名空间:System
函数原型:

__classmethod UnicodeString __fastcall QualifiedClassName();

System::TObject::QualifiedClassName 是 System::TObject 的成员函数,返回包含命名空间的类名。

  • UnitName 返回的是命名空间,ClassName 返回的是类名,合在一起就是 QualifiedClassName;
  • 通过父类指针获取到的类名是子类的类名;
  • 支持 UNICODE,类名可以是中文或其他国家的语言,不仅仅是英文;
  • 含有命名空间的类名在各部分之间分割都是 ".",而不是 "::",TObject 的 QualifiedClassName 方法始终应用 Delphi 命名规则;
  • 如果是用 Delphi 编译出来的控件,命名空间的名称是对的,大小写和实际的不符,原因是 Delphi 不需要区分大小写。

例1:获取类名和包含命名空间的类名。Button1 的点击事件里面,Sender 指向产生事件的控件,即 Button1,通过 Sender 获取到的类名是 Button1 的类名 TButton。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Memo1->Lines->Add(Sender->ClassName());
    Memo1->Lines->Add(Sender->QualifiedClassName());
}

运行结果:

获取类名和包含命名空间的类名的运行结果

例2:测试继承 TObject 自己写的类的类名,测试 UNICODE 类名。

namespace 玄坴 {
namespace HsuanLu {

class 测试类 : public TObject
{
public:
    __fastcall 测试类()
    {
    }
};

}
}

void __fastcall TForm1::Button2Click(TObject *Sender)
{
    玄坴::HsuanLu::测试类 *pObj = new 玄坴::HsuanLu::测试类;
    Memo1->Lines->Add(pObj->ClassName());
    Memo1->Lines->Add(pObj->QualifiedClassName());
    delete pObj;
}

运行结果:

获取类名测试程序的运行结果

参考:


C++ Builder 参考手册SystemTObjectQualifiedClassName

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容