属性 |
类型 |
描述 |
__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 属性来访问这个数据,而不要直接使用这个数据成员。 |