主页C++ Builder 资料C++ Builder 参考手册Graphics 绘图TFont
C++ Builder 串口控件
C++ Builder 编程技巧
C++ Builder 操作指南
C++ Builder 参考手册
基础知识
cfloat 浮点数
cmath 数学函数
cstdlib 标准库函数
System 字符串
System 日期和时间
System.Math.hpp 数学函数
其他数据类型
VCL 基础类
VCL 应用程序
Pictures 图片
Graphics 绘图
 • TColor
 • TFont
   · 属性
   · 方法
   · 事件
 • TFontCharset
 • TFontName
 • TFontPitch
 • TFontQuality
 • TFontStyle
 • TFontStyles
Additional 控件
System 控件
A ~ Z 字母顺序排列的目录
网友留言/技术支持
TFont - 系统 GDI 颜色

属性方法事件返回 TFont 类

方法 描述
public:  
TFont __fastcall TFont(void);
构造函数
~TFont __fastcall virtual ~TFont(void);
析构函数
Assign virtual void __fastcall Assign(System::Classes::TPersistent* Source);
重载 TPersistentAssign 方法。
把 Source 对象的所有的属性和数据赋值到当前对象,包括类型和格式转换再赋值。
TGraphicsObject:: TGraphicsObject 继承过来的
HandleAllocated bool __fastcall HandleAllocated(void);
返回 GDI 对象是否已经创建,即 Handle 属性是否为有效的 GDI 对象句柄。
读取 Handle 属性的时候,如果 GDI 对象没有创建,会自动创建出来,所以无法通过 Handle 属性判断当前 GDI 对象是否已经创建了的真实情况,而 HandleAllocated 不会自动创建 GDI 对象,反映的是当前 GDI 创建的真实情况。
TPersistent:: TPersistent 继承过来的
GetNamePath DYNAMIC System::UnicodeString __fastcall GetNamePath(void);
返回在 Object Inspector 属性面板里面的名称。对于控件,返回控件的名称,对于 TCollectionItem 对象,返回宿主控件的名称、属性名和 [索引号]。
TObject:: TObject 继承过来的
Free void __fastcall Free(void);
C++ 程序需要用 delete 来销毁对象,不要调用 Free 方法。
Delphi 程序可以通过调用 Free 方法来调用析构函数释放分配的内存,空指针和未初始化的对象调用 Free 不会出错。
DisposeOf void __fastcall DisposeOf(void);
PC 版本,相当于 Free;移动版本,会强制销毁对象无论 RefCount 的值是多少,并且置 Disposed 属性为 true.
InitInstance __classmethod __unsafe TObject* __fastcall InitInstance(void * Instance);
初始化成员,给他们清零。这是 NewInstance 内部调用的函数,不要直接调用 InitInstance。
重载 NewInstance 的时候,在 NewInstance 的最后一句要调用 InitInstance。
不要重载 InitInstance,因为它不是 virtual 函数。
NewInstance __classmethod virtual __unsafe TObject* __fastcall NewInstance();
NewInstance 给实例分配内存,并且返回新的实例的地址,通过调用 InstanceSize 获取需要的内存的字节数。
构造函数会自动调用 NewInstance,不要直接调用 NewInstance。
如果重载了 NewInstance 分配内存,就必须重载 FreeInstance 释放内存。
InstanceSize __classmethod int __fastcall InstanceSize();
返回给实例数据分配内存需要多少字节数。
不要重载 InstanceSize 因为它不是 virtual 函数。
只有在重载的 NewInstance 函数里面需要调用 InstanceSize。
FreeInstance virtual void __fastcall FreeInstance(void);
释放 NewInstance 分配的内存。
析构函数会自动调用 FreeInstance,不要直接调用 FreeInstance。
如果重载了 NewInstance 就必须重载 FreeInstance 与之对应。
和 NewInstance 一样,FreeInstance 也是通过 InstanceSize 获取释放内存的字节数。
CleanupInstance void __fastcall CleanupInstance(void);
清除长字符串、Variants、接口变量等,把长字符串置为 Empty,Variant 置为 Unassigned 状态。
不要直接调用 CleanupInstance,会在销毁实例的时候自动调用。
ClassType TClass __fastcall ClassType(void);
返回类的类型信息【例1:获取控件对象的类及这个类的祖先
C++ 程序可以使用 dynamic_cast 或 InheritsFrom 来代替 ClassType 方法。
ClassName __classmethod UnicodeString __fastcall ClassName();
获取类名。如果父类指针指向的是子类,通过父类指针获取类名,得到的是子类的类名。
ClassNameIs __classmethod bool __fastcall ClassNameIs(const UnicodeString Name);
判断类名是否为 Name。如果父类指针指向的是子类,通过父类指针判断类名,用的是子类的类名进行判断。
QualifiedClassName __classmethod UnicodeString __fastcall QualifiedClassName();
返回包含命名空间的类名,例如 TButton 类型返回的是 "Vcl.StdCtrls.TButton"
UnitName 和 ClassName 合在一起就是 QualifiedClassName
UnitName __classmethod UnicodeString __fastcall UnitName();
返回类所在的命名空间,例如 TButton 类型返回的是 "Vcl.StdCtrls"
UnitName 和 ClassName 合在一起就是 QualifiedClassName
UnitScope __classmethod UnicodeString __fastcall UnitScope();
和 UnitName 返回的结果相同。
ClassParent __classmethod TClass __fastcall ClassParent();
返回父类的类型信息【例1:获取控件对象的类及这个类的祖先
C++ 程序可以使用 dynamic_cast 或 InheritsFrom 来代替 ClassParent 方法。
ClassInfo __classmethod void * __fastcall ClassInfo();
返回运行时类型信息表 (RTTI table)。
不是所有的类都提供 RTTI 信息表,如果没有提供,返回值为 NULL。
TPersistent 继承的类会提供 RTTI 信息表。
InheritsFrom __classmethod bool __fastcall InheritsFrom(TClass AClass);
当前对象的类是否从 AClass 继承过来的。AClass 是父类、父类的父类,…… 一直到祖先,返回为真。
MethodAddress __classmethod void * __fastcall MethodAddress(const ShortString &Name)/* overload */;
__classmethod void * __fastcall MethodAddress(const UnicodeString Name)/* overload */;
通过名称返方法的地址。
MethodName __classmethod UnicodeString __fastcall MethodName(void *Address);
通过方法的地址返回名称。
FieldAddress void * __fastcall FieldAddress(const ShortString &Name)/* overload */;
void * __fastcall FieldAddress(const UnicodeString Name)/* overload */;
返回 __published: 成员的地址。
GetInterface bool __fastcall GetInterface(const GUID &IID, /* out */ void *Obj);
template <typename T>
bool __fastcall GetInterface(DelphiInterface<T>& smartIntf)
{ return GetInterface(__uuidof(T), reinterpret_cast<void*>(static_cast<T**>(&smartIntf))); }
Delphi 的 IID 允许用接口名称,编译器会自动采用类型的 GUID。
C++ 可以用模板版本的 GetInterface,相当于 dynamic_cast,GetInterface 在转为不支持的类型的时候不会抛出异常,只是得到的指针为 NULL,请参考 TInterfacedPersistent 的 operator _di_IInterface()。
参数 Obj 虽然是 void * 类型的,但是实质上是 void ** 类型的,必须把 void ** 强制转为 void * 作为 Obj 参数。
GetInterfaceEntry __classmethod PInterfaceEntry __fastcall GetInterfaceEntry(const GUID &IID);
获取接口项目
GetInterfaceTable __classmethod PInterfaceTable __fastcall GetInterfaceTable();
获取接口表
Equals virtual bool __fastcall Equals(TObject *Obj);
比较当前对象和 Obj 对象是否相同。从 TObject 继承的子类需要重载 Equals 来提供比较相同的方法。
GetHashCode virtual int __fastcall GetHashCode(void);
返回一个整数的 hash 值,默认的,返回的整数值为对象的地址。
测试程序:int a = Sender->GetHashCode(); int b = (int)Sender; 发现 a 和 b 的值相等。
ToString virtual UnicodeString __fastcall ToString(void);
转为字符串。默认的,ToString 返回类名,和 ClassName 的返回值相同。
如果需要其他的转字符串方式,需要用重载 ToString 来提供转为字符串的方法。
SafeCallException virtual HRESULT __fastcall SafeCallException(TObject *ExceptObject, void *ExceptAddr);
处理异常的函数,TObject 的这个函数只是简单的返回 E_UNEXPECTED
从 TObject 继承的子类可以重载这个函数来处理异常。
AfterConstruction virtual void __fastcall AfterConstruction(void);
在构造函数结束的时候会自动调用 AfterConstruction,不要直接调用这个函数。
重载这个函数可以处理在构造函数结束时需要运行的代码,
例如 TCustomForm 利用重载的 AfterConstruction 来产生 OnCreate 事件。
BeforeDestruction virtual void __fastcall BeforeDestruction(void);
在执行析构函数之前会自动调用 BeforeDestruction,不要直接调用这个函数。
在调用 BeforeDestruction 的时候,还没做任何销毁动作呢。
只有当构造函数完整执行完成的情况下,析构之前才会调用 BeforeDestruction,如果在构造函数里面抛出了异常,会调用析构函数,但是不会调用 BeforeDestruction。
重载这个函数可以处理析构函数调用之前需要运行的代码,
例如 TCustomForm 利用重载的 BeforeDestruction 来产生 OnDestroy 事件。
Dispatch virtual void __fastcall Dispatch(void *Message);
如果从 TObject 类继承的类处理了消息,Dispatch 为处理消息的函数。
如果没有处理的消息,会调用父类的消息处理,如果仍然没有处理,调用 DefaultHandler。
DefaultHandler virtual void __fastcall DefaultHandler(void *Message);
默认的消息处理。如果 Dispatch 处理消息的过程,没有找到处理的方法,会调用 DefaultHandler 进行默认的消息处理。
protected:  
Changed virtual void __fastcall Changed(void);
重载 TGraphicsObjectChanged 方法。
当属性变化的时候,调用这个函数来触发 OnChange 事件
GetHandle HFONT __fastcall GetHandle(void);
Handle 属性使用这个方法获取字体句柄,请参考 Handle 属性和 HandleAllocated 方法
GetHeight int __fastcall GetHeight(void);
Height 属性使用这个方法获取字体高度,请参考 Height 属性
GetName System::Uitypes::TFontName __fastcall GetName(void);
Name 属性使用这个方法获取字体名称,请参考 Name 属性
GetOrientation int __fastcall GetOrientation(void);
Orientation 属性使用这个方法获取文字旋转角度,请参考 Orientation 属性
GetPitch System::Uitypes::TFontPitch __fastcall GetPitch(void);
Pitch 属性使用这个方法获取字体的宽度类型,请参考 Pitch 属性
GetSize int __fastcall GetSize(void);
Size 属性使用这个方法获取字体大小,请参考 Size 属性
GetStyle System::Uitypes::TFontStyles __fastcall GetStyle(void);
Style 属性使用这个方法获取字体样式,请参考 Style 属性
GetCharset System::Uitypes::TFontCharset __fastcall GetCharset(void);
Charset 属性使用这个方法获取字体的字符集,请参考 Charset 属性
GetQuality System::Uitypes::TFontQuality __fastcall GetQuality(void);
Quality 属性使用这个方法获取字体的品质,请参考 Quality 属性
SetColor void __fastcall SetColor(const System::Uitypes::TColor Value);
Color 属性使用这个方法修改文字的颜色,请参考 Color 属性
SetHandle void __fastcall SetHandle(const HFONT Value);
Handle 属性使用这个方法关联字体的句柄,请参考 Handle 属性
TFont 并不接管句柄,而是把 Value 句柄的字体的属性都复制到当前对象
SetHeight void __fastcall SetHeight(const int Value);
Height 属性使用这个方法修改字体高度,请参考 Height 属性
SetOrientation void __fastcall SetOrientation(const int Value);
Orientation 属性使用这个方法修改文字旋转角度,请参考 Orientation 属性
SetName void __fastcall SetName(const System::Uitypes::TFontName Value);
Name 属性使用这个方法更换字体名称,请参考 Name 属性
SetPitch void __fastcall SetPitch(const System::Uitypes::TFontPitch Value);
Pitch 属性使用这个方法更改字体宽度类型,请参考 Pitch 属性
SetSize void __fastcall SetSize(const int Value);
Size 属性使用这个方法修改字体大小,请参考 Size 属性
SetStyle void __fastcall SetStyle(const System::Uitypes::TFontStyles Value);
Style 属性使用这个方法修改字体样式,请参考 Style 属性
SetCharset void __fastcall SetCharset(const System::Uitypes::TFontCharset Value);
Charset 属性使用这个方法修改字体的字符集,请参考 Charset 属性
SetQuality void __fastcall SetQuality(const System::Uitypes::TFontQuality Value);
Quality 属性使用这个方法修改字体的品质,请参考 Quality 属性
TGraphicsObject:: TGraphicsObject 继承过来的
Lock void __fastcall Lock(void);
阻止其他线程访问这个 TGraphicsObject 对象,同时也会锁定关联的画布 (Canvas),一直持续到调用 Unlock 方法。
Unlock void __fastcall Unlock(void);
解除锁定线程访问,调用 Lock 方法之后,需要用 Unlock 方法解锁。
TPersistent:: TPersistent 继承过来的
AssignTo virtual void __fastcall AssignTo(TPersistent* Dest);
把当前对象的所有属性和数据都赋值到 Dest 对象。
TPersistent 的 AssignTo 是 protected: 方法,只是简单的抛出 EConvertError 异常,
从 TPersistent 继承的子类必须重载 AssignTo 来实现这个方法。
DefineProperties virtual void __fastcall DefineProperties(TFiler* Filer);
提供把非 __published: 属性和数据存入流中,是 protected: 方法。
如果子类需要这个功能,需要重载这个函数,在重载的 DefineProperties 需要调用父类的 DefineProperties,Filter 的 DefineProperty 和 DefineBinaryProperty。
GetOwner DYNAMIC TPersistent* __fastcall GetOwner(void);
返回对象的拥有者,是 protected: 方法。GetNamePath 方法会调用 GetOwner。
TPersistent 的 GetOwner 只是简单的返回 NULL。
例如,TOwnedCollection 的 GetOwner 返回这个 collection 的 owner;TCollectionItem 的 GetOwner 返回这个项目添加在哪个 collection object 里面了,组件 (TComponent) 的 GetOwner 返回组件的 Owner 属性。

属性方法事件返回 TFont 类

◤上一页:属性下一页:事件

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