主页C++ Builder 资料C++ Builder 参考手册VCL 基础类TControl
C++ Builder 串口控件
C++ Builder 编程技巧
C++ Builder 操作指南
C++ Builder 参考手册
基础知识
cfloat 浮点数
cmath 数学函数
cstdlib 标准库函数
System 字符串
System 日期和时间
System.Math.hpp 数学函数
其他数据类型
VCL 基础类
 • TObject
 • TPersistent
 • TInterfacedPersistent
 • TComponent
 • TControl
   · 属性
   · 方法
   · 事件
 • TGraphicControl
 • TGraphicsObject
VCL 应用程序
Pictures 图片
Graphics 绘图
Additional 控件
System 控件
A ~ Z 字母顺序排列的目录
网友留言/技术支持
TControl - 所有控件的公共父类

属性方法事件返回 TControl 类

属性 类型 描述
__published:    
AlignWithMargins bool 当 Align 属性不是 alNone 的时候,是否与其他控件保持距离。
true: 与其他控件保持一定的距离,距离由 Margins 属性设定;
false: 与其他控件紧挨着,距离为 0。
请参考 Align 和 Margins 属性。
Left int 控件的水平位置,左边相对于 Form 的客户区或容器的左边的位置,可读写属性。
可以通过 SetBounds 方法同时设定 Left, Top, Width, Height 属性,
可以通过 BoundsRect 属性同时读写 Left, Top, Width, Height 属性。
Top int 控件的垂直位置,上边相对于 Form 的客户区或容器的上边的位置,可读写属性。
可以通过 SetBounds 方法同时设定 Left, Top, Width, Height 属性,
可以通过 BoundsRect 属性同时读写 Left, Top, Width, Height 属性。
Width int 控件的宽度,可读写属性。
可以通过 SetBounds 方法同时设定 Left, Top, Width, Height 属性,
可以通过 BoundsRect 属性同时读写 Left, Top, Width, Height 属性。
Height int 控件的高度,可读写属性。
可以通过 SetBounds 方法同时设定 Left, Top, Width, Height 属性,
可以通过 BoundsRect 属性同时读写 Left, Top, Width, Height 属性。
Cursor TCursor 鼠标形状,可读写属性。鼠标移动在这个控件上的形状,请参考 TCursor 类型。
Hint UnicodeString 鼠标移动到这个控件上显示的提示,可读写属性。
请参考 ShowHint 和 CustomHint 属性。
HelpType THelpType 控件在帮助 (说明文档) 里面的类型,可读写属性,可以使用的值:
enum THelpType : unsigned char { htKeyword, htContext };
htKeyword: 关键字,根据 HelpKeyword 属性的关键字打开并且定位到说明文档的位置上
htContext: 标识号,根据 HelpContext 属性的 ID 号打开并且定位到说明文档的位置上
关联和显示控件帮助 (说明文档 *.chm) 的方法
HelpKeyword UnicodeString 关键字,可读写属性。
如果 HelpType 属性值为 htKeyword,会使用这个关键字打开帮助文档里面对应的内容。
关联和显示控件帮助 (说明文档 *.chm) 的方法
HelpContext THelpContext 标识号,可读写属性,是一个整数值,typedef int THelpContext;
如果 HelpType 属性值为 htContext,会使用这个标识号 (ID) 打开帮助文档里面对应的内容。
关联和显示控件帮助 (说明文档 *.chm) 的方法
Margins TMargins 当 AlignWithMargins 属性为 true ,并且 Align 属性不是 alNone 的时候,Margins 属性是这个控件和其他控件之间的距离 (上、下、左、右四个边缘分别与相邻控件之间的距离),属性只读,属性里面的属性可读写:
• Margins->Left   和左边相邻控件之间的距离,默认值等于 3
• Margins->Top    和上边相邻控件之间的距离,默认值等于 3
• Margins->Right  和右边相邻控件之间的距离,默认值等于 3
• Margins->Bottom 和下边相邻控件之间的距离,默认值等于 3
CustomHint TCustomHint 关联到自定义方式显示 Hint 属性的提示框控件,可读写属性。
如果这个属性没有设置,即为 NULL 的时候,使用默认的提示框,即小方块显示 Hint 提示;
如果这个属性关联到 TBalloonHint 控件上,使用 TBalloonHint 控件显示 Hint 提示;
也可以继承 TCustomHint 类自己做一个显示 Hint 提示,关联到这个属性。
请参考 Hint 和 ParentCustomHint 属性。
ParentCustomHint bool 是否使用容器的 CustomHint 属性关联的 Hint 提示框,可读写属性,默认值为 true。
例如:Form 的 CustomHint 属性关联到 BalloonHint1 控件,这个 Form 里面所有的控件在默认情况下,都会使用 Form 关联的 BalloonHint1 控件来显示 Hint 提示,因为控件的 ParentCustomHint 默认值为 true。
TComponent::   TComponent 继承过来的
Name TComponentName 组件的名称,可读写属性。
设计期间,组件的名称会关联到程序的变量名,变量名和控件名相同。
运行期间修改了组件名称,会让这个组件的关联失效,程序运行异常。
Tag NativeInt 未定义的整数值属性,应用程序可以自行定义和使用这个属性。
由于这个属性是 NativeInt 类型的,和指针的位数相同,可以用来储存指针。
public:    
Enabled bool 控件是否响应鼠标、键盘和定时器事件,可读写属性,默认值为 true。
如果 Enabled 属性为 false,控件是禁用状态,通常会变暗、变灰,例如 Button、Edit、CheckBox、Label 等;也有一些控件在显示上没有变化,例如容器控件。
Action TBasicAction 关联到 Action 控件,可读写属性。
可以关联到标准功能 Action 控件,也可以关联到自定义功能 Action 控件,这个控件显示的文字、启用和禁用状态、显示和隐藏、快捷键、点击鼠标的动作等,都与 Action 控件同步,只需要修改和处理 Action 控件就可以了。允许几个控件关联到同一个 Action 控件,比如菜单项、工具条按钮等,他们实现同一个功能。
【请参考:使用 Action 控件
Align TAlign 控件相对于容器的大小和位置,可读写属性,请参考 TAlign 类型。
【请参考:使用 Align 属性让控件自动调整位置和大小
Anchors TAnchors 控件相对于容器的大小和位置,可读写属性,请参考 TAnchors 类型。
【请参考:使用 Anchors 属性让控件自动调整位置和大小
BiDiMode TBiDiMode 文字的书写方向,可读写属性,默认值为 bdLeftToRight,即从左向右的方向书写文字。
这个属性影响控件的文字显示和输入,滚动条的位置和文字对其方式,可用的值:
• bdLeftToRight 从左到右的书写方向,正常对齐方式,垂直滚条在右边
• bdRightToLeft 从右到左的书写方向,对齐方式相反方向,垂直滚条在左边
• bdRightToLeftNoAlign 从右到左的书写方向,标准对齐方式,垂直滚条在左边
• bdRightToLeftReadingOnly 从右到左的书写方向,标准对齐方式,垂直滚条在右边
相关属性:ParentBiDiMode 属性
BoundsRect TRect 控件的位置和大小,可读写属性。相当于同时访问 Left, Top, Width, Height 属性。
  R = Control->BoundsRect;
相当于
  R.Left   = Control->Left;
  R.Top    = Control->Top;
  R.Right  = Control->Left + Control->Width;
  R.Bottom = Control->Top + Control->Height;
注意不要直接修改 BoundsRect 里面的属性值,比如:
  Control->BoundsRect.Left = 8; 这样是无效的
  Control->BoundsRect = R; 正确,要给 BoundsRect 属性整体赋值
ClientHeight int 控件客户区高度,可读写属性。相关属性:ClientRect 属性。
客户区是指去掉边框、菜单栏、工具栏、状态栏之后的中间部分区域。
修改客户区的高度,会改变控件或窗口的大小,以满足修改之后的客户区大小。
ClientOrigin TPoint 客户区的左上角,即 ClientRect 属性的 (0,0) 点在屏幕坐标的位置,只读属性。
客户区是指去掉边框、菜单栏、工具栏、状态栏之后的中间部分区域。
移动窗口,移动控件,改变边框或标题栏大小等,会改变这个值。
请参考 ClientToScreen 和 ScreenToClient 方法。
ClientRect TRect 客户区的矩形范围,相当于 TRect(0, 0, ClientWidth, ClientHeight),只读属性。
客户区是指去掉边框、菜单栏、工具栏、状态栏之后的中间部分区域。
如果要修改客户区的大小,可以用 ClientWidth 和 ClientHeight 属性,将会改变控件或窗口的大小,以满足修改之后的客户区的大小。
通常都是使用 ClientWidth、ClientHeight 和 ClientRect 属性,控件在窗口或容器控件里面的位置都是相对于这个坐标的,只有需要知道控件或客户区在整个屏幕的坐标位置的时候,才需要 ClientOrigin 属性。
ClientWidth int 控件客户区宽度,可读写属性。相关属性:ClientRect 属性。
客户区是指去掉边框、菜单栏、工具栏、状态栏之后的中间部分区域。
修改客户区的宽度,会改变控件或窗口的大小,以满足修改之后的客户区大小。
Constraints TSizeConstraints 限制控件或窗口大小,可读写属性。以下属性为具体限制的内容,值等于 0 为不限制
• Constraints->MaxHeight  最大高度,默认值为 0
• Constraints->MaxWidth   最大宽度,默认值为 0
• Constraints->MinHeight  最小高度,默认值为 0
• Constraints->MinWidth   最小宽度,默认值为 0
ControlState TControlState 控件状态,可读写属性,请参考 TControlState 类型。
可以用 ControlState.Contains() 判断是否包含某个状态。
ControlStyle TControlStyle 控件样式,可读写属性,请参考 TControlStyle 类型。
可以用 ControlStyle.Contains() 判断是否包含某个样式。
DockOrientation TDockOrientation 如果这个控件和其他控件都停靠在同一个控件里面,这个属性是这个控件和与它停靠在一起的控件之间的相对位置,可读写属性,默认值为 doNoOrient,可用的值请参考 TDockOrientation
ExplicitLeft int 控件内部使用的属性,用来记住自动调整位置和大小之前的位置,只读属性。
例如:如果控件由于设定了 Align 或 Anchors 属性而自动调整了大小,Left、Top、Width 和 Height 属性会随着调整大小而改变,而 ExplicitLeft、ExplicitTop、ExplicitWidth 和 ExplicitHeight 会保持调整之前的值,如果取消了自动调整大小的属性,可以用这个值恢复
ExplicitTop int 控件内部使用的属性,用来记住自动调整位置和大小之前的位置,只读属性。
例如:如果控件由于设定了 Align 或 Anchors 属性而自动调整了大小,Left、Top、Width 和 Height 属性会随着调整大小而改变,而 ExplicitLeft、ExplicitTop、ExplicitWidth 和 ExplicitHeight 会保持调整之前的值,如果取消了自动调整大小的属性,可以用这个值恢复
ExplicitWidth int 控件内部使用的属性,用来记住自动调整位置和大小之前的宽度,只读属性。
例如:如果控件由于设定了 Align 或 Anchors 属性而自动调整了大小,Left、Top、Width 和 Height 属性会随着调整大小而改变,而 ExplicitLeft、ExplicitTop、ExplicitWidth 和 ExplicitHeight 会保持调整之前的值,如果取消了自动调整大小的属性,可以用这个值恢复
ExplicitHeight int 控件内部使用的属性,用来记住自动调整位置和大小之前的高度,只读属性。
例如:如果控件由于设定了 Align 或 Anchors 属性而自动调整了大小,Left、Top、Width 和 Height 属性会随着调整大小而改变,而 ExplicitLeft、ExplicitTop、ExplicitWidth 和 ExplicitHeight 会保持调整之前的值,如果取消了自动调整大小的属性,可以用这个值恢复
Floating bool 控件从 DockSite 里面拖拽出来,像个小窗口漂浮出来了,只读属性。
请参考 DockOrientation 和 HostDockSite 属性、ManualDock 和 ManualFloat 方法
FloatingDockSiteClass TWinControlClass 控件从 DockSite 里面拖拽出来,像个小窗口漂浮出来了,实际上这个控件是放在了一个临时创建的小窗口里面,就是 FloatingDockSiteClass,可读写属性,默认值为 __classid(TCustomDockForm),如果控件停靠在其他控件里面了,这个临时小窗口会自动释放。如果控件可以作为单独窗口漂浮,FloatingDockSiteClass 可以为 NULL
HostDockSite TWinControl 控件停靠在哪个控件 (DockSite) 里面,可读写属性。
请参考 DragKind 和 DragMode 属性、ManualDock 和 ManualFloat 方法
LRDockWidth int 控件停靠在了 DockSite 里面,按照上下顺序排列 (DockOrientation 属性为 doHorizontal) 时,控件的宽度,可读写属性。
ShowHint bool 是否显示控件的 Hint (提示信息),请参考 Hint、CustomHint 和 ParentCustomHint 属性
TBDockHeight int 控件停靠在了 DockSite 里面,按照左右顺序排列 (DockOrientation 属性为 doVertical) 时,控件的高度,可读写属性。
Touch TTouchManager * 触摸屏动作管理,可读写属性,可以利用这个属性关联到 TGestureManager 控件,来实现各种触摸屏手势对应的动作。
• Touch->GestureManager 关联到 TGestureManager 控件
• Touch->InteractiveGestures 选择各种触摸屏手势动作
• Touch->InteractiveGestureOptions 手势动作选项
• Touch->ParentTabletOptions 使用 Parent (容器控件或 Form) 的触摸选项
• Touch->TabletOptions 触摸选项
UndockHeight int 控件从 DockSite 里面漂浮出来时的高度,可读写属性,请参考 Floating 属性
UndockWidth int 控件从 DockSite 里面漂浮出来时的宽度,可读写属性,请参考 Floating 属性
Visible bool 控件是否可见,可读写属性,默认值为 true。true: 控件可见;false: 控件隐藏
WindowProc TWndMethod 指向 Windows 消息处理函数的指针,可读写属性,初始值为 WndProc 方法。
建议子类应使用重载 WndProc 的方法来处理消息,如果使用 WindowProc,必须先记住这个属性原先的值 (这个原先的值可能是初始值,也可能是修改过的),然后在给 WindowProc 赋值为自定义的消息处理函数,自己的消息处理函数未处理的消息,必须使用记住的原先的 WindowProc 指向的函数来处理,在结束时,用记住的原先的 WindowProc 的值恢复到这个属性里面
Parent TWinControl 控件放在哪个容器里面,可读写属性。
Parent 可以是控件,也可以是 Form,控件必须放在容器里面才可以显示出来,
如果控件的 Parent 属性是 NULL,控件是无法显示出来的。
例如,把 Button 放在了 Form 上的 Panel 里面了,那么 Button 的 Parent 是 Panel,Panel 的 Parent 是 Form,而 Form 的 Parent 是 NULL。
如果控件是用 new 动态创建出来的,别忘记给 Parent 属性赋值,例如:
  btn = new TButton(this); // 新创建按钮 btn
  btn->Parent = this;      // btn 放在 form 里面
  edt = new TEdit(this);   // 新创建编辑框 edt
  edt->Parent = Panel1;    // edt 放在 Panel1 里面
StyleElements TStyleElements 控件使用主题的属性,可读写属性,可以包含以下表格里面的一个或几个属性,也可以为空,默认值是包含 TStyleElements 可以包含的所有的属性,即 seFont、seClient、seBorder 属性,请参考 TStyleElements 类型和 “程序的显示主题/切换皮肤
TComponent::   TComponent 继承过来的
ComObject _di_IInterface 获取控件的 COM 接口对象,只读属性。
如果这个控件不支持 COM 接口,读取这个属性会抛出 EComponentError 异常。
Components TComponent * [int Index] 这个组件作为容器,里面可以拥有和容纳其他组件,这些拥有的组件的 Onwer 就是这个组件。
Components 属性为这个控件拥有的其他组件的列表,返回第 Index 个拥有的组件。
Index 的范围为 0 ~ ComponentCount - 1
ComponentCount int 这个组件作为容器,里面可以拥有和容纳其他组件,这是拥有的组件的个数。
利用 Components 属性可以把拥有的每个组件读出来。
ComponentIndex int 这个控件是在他的 Owner (拥有者) 的 Components 属性里面,是第几个,可读写属性。
ComponentIndex 的范围在 0 到 Owner 的 ComponentCount -1 之间。
ComponentState TComponentState 组件当前的状态,只读属性,请参考 TComponentState 类型。
用 ComponentState.Contains() 判断是否包含某个值
ComponentStyle TComponentStyle 组件的样式,只读属性,请参考 TComponentStyle 类型。
用 ComponentStyle.Contains() 判断是否包含某个值。
这些样式当中,只有 csSubComponent 可以调用 SetSubComponent 方法来设置,其他样式都是在创建的时候就固定了的,不能更改。
DesignInfo int 提供给画面编辑器的信息,只读属性。这是组件内部使用的属性,应用程序不要使用这个属性。
Owner TComponent 这个组件的拥有者。这个组件会随着 Owner 一起从流里面读取或写入流中,会随 Owner 一起被销毁。
默认的,Form 是放在这个 Form 里面的所有组件的 Owner。
如果一个组件的 Owner 不是 Form 或 data module,而是其他组件,这个组件不会随 Form 一起写入流中或者从流中读出,除非使用 SetSubComponent 方法指定这个组件是一个子组件,请参考 ComponentStyle 属性和 SetSubComponent 方法。
VCLComObject void * COM 组件对象,可读写属性,是组件内部使用的一个属性,只有这个组件支持 COM 的时候使用。
Observers TObservers * 这个组件的 TObservers 对象,只读属性。提供给 LiveBindings 或者给编程者使用。
protected:    
ActionLink TControlActionLink 关联到 ActionLink,控件内部使用的属性,可读写属性。ActionLink 是处理 Action 与控件的属性和事件之间的链接关系的,请参考 Action 属性
AutoSize bool 控件是否要根据内容自动调整大小,可读写属性,默认值为 false。
true: 控件的内容变化了,控件的大小也随着内容占用的空间而变化;
false: 控件的内容变化了,控件的大小不随着改变。
Caption TCaption 标题,可读写属性。窗口的标题,按钮和 Label 显示的文字等。
标题是字符串类型的,请参考 TCaption 类型。
控件,例如按钮和 Label 等显示的文字是带转义符的,L'&' 表示给接下来的一个字符添加下划线,例如 L"a&b" 会显示为 “ab”,如果要显示 L'&' 需要双写,L"a&&b" 会显示为 “a&b”
DesktopFont bool 使用桌面字体,可读写属性。
true: 字体和 Windows 桌面的字体相同
false: 使用 Font 或 ParentFont 属性设置字体
DragKind TDragKind 拖拽类型,可读写属性,默认值为 dkDrag,可用的值为:
dkDrag: 普通的拖拽
dkDock: 拖拽停靠在作为 DockSite 的控件里面
DragCursor TCursor 拖拽时的鼠标形状,可读写属性,请参考 TCursor 类型
DragMode TDragMode 拖拽方式,可读写属性,默认值为 dmManual,请参考 TDragMode 类型。
dmManual: 手动拖拽。使用 BeginDrag 方法开始拖拽控件
dmAutomatic: 自动拖拽。当按下鼠标左键并保持按下状态即开始拖拽
IsControl bool 使用这个属性让 Form 当作复杂控件使用,默认值为 false。
注:按照帮助里面写的 “编辑 Form 作为复杂控件” 测试没有成功,测试内容:
把一个 Form 当中复杂控件,测试的使用使用 Form3,保存 Form3 之后,
.dfm 文本里面的 object Form3: TForm3 下面添加一行内容:
IsControl = True
保存,然后再打开 Form3 编辑,帮助里面说的是与当作控件无关的属性不会保存到 .dfm 里面了,实际测试并没有什么变化,仍然是原来的内容。帮助里面写的下一步,即最后一步,把 .dfm 的 TForm 类型可以改为 TPanel,测试如果直接改为 TPanel 存盘,将无法加载这个 Form 了, 如果仅在记事本里面编辑,把 TForm 改为 TPanel 然后全选,当作控件粘贴到一个其他 Form 上,由于上一步没有过滤掉作为控件不必要的属性,所以这一步会提示有无效的属性,无法粘贴
MouseCapture bool 捕获鼠标事件,可读写属性。一般情况下,只有鼠标移动在控件显示范围内,才接收鼠标事件,例如移动、点击等,当控件捕获鼠标事件的时候,无论鼠标移动到哪里,这个控件都会接收鼠标事件,而其他任何控件 (即使鼠标移动到那个控件上的时候) 都不会收到鼠标事件。
如果控件的 ControlStyle 属性包含 csCaptureMouse,当鼠标左键在这个控件上按下的时候开始捕获鼠标事件,当鼠标左键抬起的时候停止捕获鼠标事件。
ParentBiDiMode bool 使用容器控件或 Form 的 BiDiMode 属性,可读写属性,默认值为 true。请参考 BiDiMode 属性
ParentColor bool 使用容器控件或 Form 的 Color 属性,可读写属性,默认值为 true。请参考 Color 属性
ParentFont bool 使用容器控件或 Form 的 Font 属性,可读写属性,默认值为 true。请参考 Font 属性
ParentShowHint bool 使用容器控件或 Form 的 ShowHint 属性,可读写属性,默认值为 true。请参考 ShowHint 属性
PopupMenu TPopupMenu * 关联到弹出菜单,可读写属性,默认值为 NULL。
如果关联到弹出菜单,点击鼠标右键的时候会弹出这个菜单。
ScalingFlags TScalingFlags 控件内部使用的属性,表示控件的哪些属性会随系统的缩放比例进行缩放,可读写属性。
请参考 TScalingFlags 类型。
Text TCaption 文字,可读写属性。编辑文字的控件,例如 TEdit、TMemo、TRichEdit 等显示和输入的文字。
文字是字符串类型的,请参考 TCaption 类型。
WheelAccumulator int 鼠标滚轮累加器,可读写属性。请参考 DoMouseWheel 方法。
Color TColor 控件的颜色,可读写属性,默认值为 clWindow。请参考 TColor 类型和 ParentColor 属性
Font TFont 控件的字体,可读写属性。请参考 TFont 类型和 ParentFont 属性
WindowText WideChar * 控件的文字,默认情况和 Text 属性的内容相同,是控件内部使用的数据。
帮助里面写的:对于编辑框,是编辑的文字;对于 ComboBox 是编辑框里面的文字;对于按钮,是按钮的名称;所有其他控件,是窗口的标题
FCurrentPPI int int FCurrentPPI; 控件内部使用的数据,分辨率:每英寸的像素个数,默认值是 96。请参考 ScaleForPPI 方法
FAnchorMove bool bool FAnchorMove; 控件内部使用的数据,使用 Anchors 属性的时候,当控件移动的时候是否需要保持控件的尺寸,请参考 Anchors 属性
FAnchorRules TPoint System::Types::TPoint FAnchorRules; 控件内部使用的数据,使用 Anchors 属性的时候:
Anchors FAnchorRules.X Anchors FAnchorRules.Y
  akLeft akRight 控件的原始宽度   akTop akBottom 控件的原始高度
   akLeft akRight 原始 Left 坐标    akTop akBottom 原始 Top 坐标
   akLeft   akRight 原始水平中点坐标    akTop   akBottom 原始垂直中点坐标
FAnchorOrigin TPoint System::Types::TPoint FAnchorOrigin; 控件内部使用的数据,是 Anchors 的坐标
FOriginalParentSize TPoint System::Types::TPoint FOriginalParentSize; 控件内部使用的数据,如果使用了 Anchors 属性,FOriginalParentSize 记录了这个控件的 Parent (容器控件或窗口) 的大小
FExplicitLeft int int FExplicitLeft; 控件内部使用的数据,请参考 ExplicitLeft 属性
FExplicitTop int int FExplicitTop; 控件内部使用的数据,请参考 ExplicitTop 属性
FExplicitWidth int int FExplicitWidth; 控件内部使用的数据,请参考 ExplicitWidth 属性
FExplicitHeight int int FExplicitHeight; 控件内部使用的数据,请参考 ExplicitHeight 属性
FReserved void * void *FReserved; 控件内部使用的数据,不要直接使用这个数据
TComponent::   TComponent 继承过来的
FComponentStyle TComponentStyle TComponentStyle FComponentStyle;
这是一个数据成员,由控件内部使用。
应用程序可以通过 ComponentStyle 属性来访问这个数据,而不要直接使用这个数据成员。

属性方法事件返回 TControl 类

下一页:方法

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