标准控件
# Smart 控件使用(标准)
标准控件盘中包含经常会使用到的标准Windows控件。可配合显示标准的Windows程序界面。
# 1. TMainMenu组件
TMainMenu为窗体提供主菜单。要开始设计菜单,请在窗体中添加主菜单,然后双击该组件。 TMainMenu引入了用于将主菜单的下拉菜单与另一个窗体的主菜单合并的属性和方法。 TMainMenu引入了用于辅助OLE容器的菜单协商过程的属性和方法。 提示:要创建用户可以在运行时配置的菜单,请将TActionMainMenuBar组件与操作管理器一起使用。
# 1.1. 属性
- TMainMenu组件主要属性
属性 | 功能说明 |
---|---|
AutoHotkeys | 确定是否可以自动重置菜单项的快捷键 |
AutoLineReduction | 确定是否从菜单中自动删除冗余的分隔条 |
AutoMerge | 确定辅助窗体的主菜单是否在运行时与非MDI应用程序中的主窗体的主菜单合并 |
BiDiMode | 确定中东语言环境中菜单的布局 |
Images | 列出可以出现在各个菜单项旁边的图像 |
OwnerDraw | 指定应用程序是否绘制菜单项 |
ParentBiDiMode | 指示BiDiMode属性是否从使用该菜单的组件继承 |
# 1.2. 事件
- TMainMenu组件事件列表
事件 | 何时触发 |
---|---|
OnChange | 在菜单更改时,触发该事件 |
# 1.3. 方法
- TMainMenu组件主要方法列表
方法 | 功能描述 |
---|---|
GetOle2AcceleratorTable | 返回主菜单的快捷键对应表 |
Merge | 将一个窗体的主菜单与另一个窗体的主菜单组合在非MDI应用程序中 |
PopulateOle2Menu | 使用主菜单中的项目填充OLE菜单 |
SetOle2MenuHandle | 将OLE菜单的句柄与主菜单相关联 |
Unmerge | 反转非MDI应用程序中两个菜单的合并操作 |
# 2. TPopupMenu组件
TPopupMenu使用户使用鼠标右键单击组件时显示的弹出菜单。要使弹出菜单可用,请将TPopupMenu对象分配给组件的PopupMenu属性。 提示:要创建用户可以在运行时配置的弹出菜单,请将TStandardMenuPopup组件与操作管理器一起使用。 注意:如果弹出菜单的ParentBiDiMode为true,则弹出菜单的BiDiMode设置为激活它的组件的BiDiMode。如果找不到组件,BiDiMode将设置为Application对象的BiDiMode的值。弹出菜单的BiDiMode会影响其所有菜单项。
# 2.1. 属性
- TPopupMenu组件主要属性
属性 | 功能说明 |
---|---|
PopupComponent | 指示上次显示弹出菜单以响应鼠标右键单击的组件 |
PopupPoint | 指示弹出菜单显示的位置 |
Alignment | 确定用户单击鼠标右键时弹出菜单的显示位置 |
AutoHotkeys | 确定是否可以自动重置菜单项的快捷键 |
AutoLineReduction | 确定是否从菜单中自动删除冗余分隔条 |
AutoPopup | 确定当用户单击鼠标右键时是否自动显示弹出菜单 |
BiDiMode | 确定中东语言环境中菜单的布局 |
HelpContext | 指定整个弹出菜单的上下文ID |
Images | 列出可以出现在各个菜单项旁边的图像 |
MenuAnimation | 指定首次显示菜单时的显示方式 |
OwnerDraw | 指定应用程序是否绘制菜单项 |
ParentBiDiMode | 指示BiDiMode属性是否从使用该菜单的组件继承 |
TrackButton | 指定当与工具栏按钮关联时,哪个鼠标按钮激活弹出菜单 |
# 2.2. 事件
- TPopupMenu组件事件列表
事件 | 何时触发 |
---|---|
OnChange | 在菜单更改时,触发该事件 |
OnPopup | 在弹出菜单出现之前,触发该事件 |
# 2.3. 方法
- TPopupMenu组件主要方法列表
方法 | 功能描述 |
---|---|
Popup | 在屏幕上显示弹出菜单 |
{此示例使用弹出菜单。当用户按下鼠标按钮时,弹出菜单出现在用户点击鼠标所在的位置:}
procedure TForm1.FormCreate(Sender:TObject);
begin
FThis.PopupMenu1.AutoPopup:=False;
end;
procedure TForm1.FormMouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
FThis.PopupMenu1.Popup(Left+X,Top+Y);
end;
2
3
4
5
6
7
8
9
10
# 3. TLabel组件
使用TLabel可添加用户无法编辑到窗体的文本。此文本可用于标记另一个组件,并可在用户键入快捷键时将焦点设置为该组件。 因为TLabel不是TWinControl的子类,所以它没有自己的窗口,也无法从键盘接收直接输入。要将对象添加到可以响应键盘输入的窗体(除了在键入快捷键时将焦点设置为另一个对象),还可以使用TStaticText。 要将对象添加到显示用户可以滚动或编辑的文本的窗体,请使用TEdit。
# 3.1. 属性
- TLabel组件主要属性
属性 | 功能说明 |
---|---|
Align | 确定组件在其父组件区内的对齐方式 |
Alignment | 控制文本在标签中的水平放置 |
Anchors | 指定组件如何停放在父窗体中 |
AutoSize | 确定标签的大小是否自动调整大小以容纳文本 |
BiDiMode | 指定组件的方向模式 |
Caption | 指定标识用户组件的文本字符串 |
Color | 指定组件的背景颜色 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 确定组件如何启动拖放操作或拖挂操作 |
EllipsisPosition | 指定如何在文本中放置省略号以使其适合分配的矩形 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
FocusControl | 指定与标签关联的窗口组件 |
Font | 确定组件内显示的文本字体 |
GlowSize | 指定标签周围发光的半径 |
Layout | 指定文本在标签中的垂直位置 |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentColor | 组件要使用与其父组件相同的颜色 |
ParentFont | 确定组件是否使用父组件的Font |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
ShowAccelChar | 确定标签文本中的&符号的显示方式 |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
Transparent | 指定是否可以通过标签查看位于窗体上标签下方的组件 |
Visible | 确定组件是否可见 |
WordWrap | 指定标签文本在标签宽度过长时是否换行 |
# 3.1.1. Alignment 属性
property Alignment: TAlignment;
设置该属性可以指定标签文本在ClientRect区域内如何排列。如果Wordwrap属性为True, 而且标签中包含多于一行的文本时,则这个属性的效果将更加明显。 Alignment属性的可选值如下。
- taLeftJustify:输入的文本在组件的左边对齐。
- taCenter:输入的文本在组件的中间对齐。
- taRightJustify:输入的文本在组件的石边对齐。
# 3.1.2. AutoSize 属性
property AutoSize: Boolean;
使用该属性可自动调整标签的大小,使客户区容纳文本的高和宽。,设罝该属性为False 时,标签大小同定;否则标签大小将随文本内容和字体属性的改变而改变。 当Wordwrap属性为True时,标签宽度固定,此时如果该属性也为True,则改变文本仅使标签的高度发生改变;如果该属性为True, Wordwrap为False,则标签高度由字体决定,文本变化将使标签宽度变化。
# 3.1.3. FocusControl 属性
property FocusControl: TWinControl;
设罝该属性可使组件为当用户按下标签中指定的快捷键时接收焦点的窗口类组件。指定一 个快捷键时,要在标签文本前添加一个&符号,并将ShowAccelChar属性设置为True。
- 应用
FocusControl属性用于设罝标签组件与窗体上其他没有标题的组件相关联,关联后可以通过键盘上的加速键使这些组件获得输入焦点。
begin
FThis.Button2.SetFocus; //初始化时将焦点置于Button2上。
FThis.Label2.ShowAccelChar := True;
FThis.Label2.Caption := '在当前界面下,按下&A按键,Button1获得焦点';
FThis.Label2.FocusControl := This.Button1;
end.
2
3
4
5
6
# 3.1.4. Layout 属性
property Layout: TTextLayout;
该属性用于指定标签组件的ClientRect内的文本显示位置,Layout属性的可选值如下。
- tlTop:顶部对齐。
- tlBottom:底部对齐。
- tICenter:居中对齐。
# 3.1.5. ShowAccelChar 属性
property ShowAccelChar: Boolean;
设置该属性为True时,允许任意字符前添加&记号将出现下划线。如果要显示一个&号, 可连续使用两个&&号。如果设置了FocusControl属性,则当用户输入下划线字符时,窗口焦点将指向FocusControl属性指定的有窗体的组件,设置该属性为False时,在标签中只显示标签名称,而且FocusControl属性值无效。
- 应用
ShowAccelChar属性用于设置是否显示标签文本中的记号名称。
begin
This.Label1.ShowAccelChar := True;
This.Label1.Caption := 'An &Underlined character appears here';
This.Label2.ShowAccelChar := False;
This.Label2.Caption := 'An ampersand (&) appears here';
end.
2
3
4
5
6
# 3.1.6. Transparent 属性
property Transparent: Boolean;
设置该属性为True时,可透过标签组件看到其下的组件,例如在一幅图像上添加文本时, 可使用这个属性将其设为透明显示,这样文本框的显示就会是透明的。
# 3.1.7. Wordwrap 属性
property Wordwrap: Boolean;
设置该属性为True时,允许标签组件显示多行文本;为False时可以限制标签文本为单行显示,超长文本将被截掉。
begin
This.Label1.WordWrap := True;
This.Label1.Caption := '愿中国青年都摆脱冷气,只是向上走,不必听自暴自弃者流的话。能做事的做事,'
+ '能发声的发声。有一分热,发一分光。就令萤火一般,也可以在黑暗里发一点光,不必等候炬火。';
This.Label2.WordWrap := False;
This.Label2.Caption := '愿中国青年都摆脱冷气,只是向上走,不必听自暴自弃者流的话。能做事的做事,'
+ '能发声的发声。有一分热,发一分光。就令萤火一般,也可以在黑暗里发一点光,不必等候炬火。';
end.
2
3
4
5
6
7
8
# 3.1.8. Caption 属性
property Caption: TCaption:
使用该属性可指定标注组件的文本字符串。在字符前包括一个与(&)符号可使一个标注组件的该属性中该字符以下划线方式显示。这种类型的字符称为“加速符”,用户按住Alt键的同时按下划线字符即可选取该组件。使用双与号(&&)可在标题中显示一个&符号。
# 3.2. 事件
- TLabel组件主要事件
事 件 | 描 述 |
---|---|
OnContextPopup | 与用户右击组件或用其他方式(键盘)调用弹出菜单时产生该组 件,编辑其事件处理程序可在响应用户行为中创建或显示组件的弹出菜单。该事件允许应用程序集中响应用户的各种行为 |
OnEndDock | 与对象的拖动结束后产生该事件,使用这个事件的处理程序可指定行为 |
OnEndDrag | 与对象的拖动结束后产生该事件,使用这个事件的处理程序可指定行为 |
OnMouseEnter | 与光标指针移动到标签上时,触发该事件,编辑其斑件处理程序可以在鼠标移动到标签上时执行其特定的操作 |
OnMouseLeave | 与光标指针离开标签时,触发该事件,编辑其事件处理程序可以在鼠标光标离开标签时执行其特定的操作 |
OnStartDock | 当用户开始拖动组件时产生该事件 |
# 3.2.1. OnMouseEnter 事件
type TNotifyEvent = procedure (Sender: Tobject) of object;
property OnMouseEnter: TnotifyEvent;
2
当光标指针移动到标签上时,触发该事件,编写其事件处理程序可以在鼠标移动到标签上时执行其特定的操作。
# 3.2.2. OnMouseLeave 事件
type TNotifyEvent = procedure (Sender: TObject) of object;
property OnMouseLeave: TNotifyEvent;
2
当光标指针离开标签时,触发该事件,编写其事件处理程序可以在鼠标光标离开标签时执行其特定的操作。
- 应用
当鼠标移到至标签上时,标签变红色,当鼠标从标签上移开时,标签恢复黑色。
procedure TMyHandler.LABEL2MOUSEENTER;
//鼠标移动至此处时触发该事件
begin
if Sender is TLabel then
TLabel(Sender).Font.Color := clRed;
end;
procedure TMyHandler.LABEL2MOUSELEAVE;
//鼠标离开时触发该事件
begin
if Sender is TLabel then
TLabel(Sender).Font.Color := clBlack;
end;
2
3
4
5
6
7
8
9
10
11
12
13
# 4. TEdit组件
使用TEdit对象将标准Windows编辑组件放在窗体上。编辑组件用于检索用户键入的文本。编辑组件还可以向用户显示文本。 仅向用户显示文本时,选择编辑组件以允许用户选择文本并将其复制到剪贴板。如果不需要编辑组件的选择功能,请选择标签对象(TLabel)。 TEdit实现了TCustomEdit中引入的泛型行为。TEdit发布了许多从TCustomEdit继承的属性,但没有引入任何新行为。对于专门的编辑组件,请使用TCustomEdit的其他后代类或从中派生。
# 4.1. 属性
- TEdit组件主要属性
属性 | 功能说明 |
---|---|
Align | 确定组件在其父组件区内的对齐方式 |
Alignment | 确定文本在文本编辑组件中的对齐方式 |
Anchors | 指定组件如何停放在父窗体中 |
AutoSelect | 确定组件获得焦点时是否自动选择编辑组件中的所有文本 |
AutoSize | 确定编辑组件的高度是否自动调整大小以容纳文本 |
BevelEdges | 使用该属性可获得或设置组件成斜角的边缘 |
BevelInner | 使用该属性可指定内斜角是否具有凸、凹或平坦的外观 |
BevelKind | 使用该属性可修改斜角的风格,即斜角的倾斜程度 |
BevelOuter | 使用该属性可指定外斜角是否具有凸、凹或平坦的外观,外斜角直接显示在边框内和内斜角的外面 |
BevelWidth | 使用该属性可指定内外斜角的像素宽度 |
BiDiMode | 指定组件的方向模式 |
BorderStyle | 使用该属性可影响编辑组件的客户区域突出效果,其取值为bsSingle时,编辑组件的客户区域有一个单线边框;为bsNone时,无边框 |
CharCase | 确定编辑组件中文本的大小写 |
Color | 指定组件的背景颜色 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
Ctl3D | 确定组件是否具有三维(3-D)或二维外观 |
DoubleBuffered | 确定组件的图像是直接渲染到窗口还是首先绘制到内存中的位图 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 确定组件如何启动拖放操作或拖挂操作 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
Font | 确定组件内显示的文本字体 |
HideSelection | True:编辑组件有焦点时,文本选择的部分有视觉提示;False:即使编辑组件无焦点,文本选择的部分仍然有视觉反应 |
ImeMode | 设置该属性可配置IME处理用户按键的方法。对于亚洲语言字符,IME为前端输入处理器 |
ImeName | 设置该属性可配置IME名称 |
Lines | 使用该方法可操作编辑组件中的单行文本 |
MaxLength | 利用该属性可限制用户输入的字符数,为0表示字符的长度没有限制 |
NumbersOnly | 仅允许在文本编辑中键入数字 |
OEMConvert | 确定在编辑组件中键入的字符是否从ANSI转换为OEM,然后再转换回ANSI |
Paragraph | 读取该属性可获得编辑组件中指定的段落格式信息 |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentColor | 组件要使用与其父组件相同的颜色 |
ParentCtl3D | 确定组件是否使用父组件的Ctl3D |
ParentDoubleBuffered | 获得或设置组件是否使用父组件的DoubleBuffered属性 |
ParentFont | 确定组件是否使用父组件的Font |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PasswordChar | 指示要显示的字符(如果有),以代替在组件中键入的实际字符 |
PlainText | True:忽略RTF文本中的信息编码。False:将RTF文本中的格式信息编辑保存或流出到文件 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
ReadOnly | 确定用户是否可以更改编辑组件的文本 |
ScrollBars | 确定是否为多行文本编辑器添加水平或垂直的滚动条 |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
TabOrder | 确定父组件的切换顺序 |
TabStop | 确定用户是否可以通过Tab按键选择组件 |
Text | 包含与组件关联的文本字符串 |
TextHint | Text属性为空时显示的提示或消息 |
Visible | 确定组件是否可见 |
Ctl3D | 确定组件在其父组件区内的对齐方式 |
DoubleBuffered | 确定文本在文本编辑组件中的对齐方式 |
DragCursor | 指定组件如何停放在父窗体中 |
DragKind | 确定组件获得焦点时是否自动选择编辑组件中的所有文本 |
DragMode | 确定编辑组件的高度是否自动调整大小以容纳文本 |
Enabled | 使用该属性可获得或设置组件成斜角的边缘 |
Fon | 使用该属性可指定内斜角是否具有凸、凹或平坦的外观 |
HideSelection | 使用该属性可修改斜角的风格,即斜角的倾斜程度 |
ImeMode | 使用该属性可指定外斜角是否具有凸、凹或平坦的外观,外斜角直接显示在边框内和内斜角的外面 |
ImeName | 使用该属性可指定内外斜角的像素宽度 |
MaxLength | 为组件指定双向模式,控制文本的顺序,垂直滚动条的位置以及是否改变对齐方式 |
NumbersOnly | 使用该属性可影响编辑组件的客户区域突出效果,其取值为bsSingle时,编辑组件的客户区域有一个单线边框;为bsNone时,无边框 |
OEMConvert | 确定编辑组件中文本的大小写 |
ParentBiDiMode | 指定组件的背景颜色 |
ParentColor | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
# 4.1.1. AutoSelect 属性
property AutoSelect: Boolean;
设置该属性可以在编辑组件获得焦点时选中编辑组件中的所有文本。该属性只能在单行编辑组件中应用。,用户替代编辑组件中的文本比添加的可能性大时,使用该属性。
True:当TEdit组件获得输入焦点时,选中所有的文本。
False:当TEdit组件获得输入焦点时,不选中所有的文本。
应用
使用AutoSelect属性能够确定在编辑框获得焦点时是否选中文本。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.Edit1.AutoSelect := True;
FThis.Edit2.AutoSelect := False;
end;
{方法实现 MODULE-REAL}
procedure TMyHandler.BUTTON1CLICK;
//点击Button1,Edit1获得焦点
begin
FThis.Edit1.SetFocus;
end;
procedure TMyHandler.BUTTON2CLICK;
//点击Button2,Edit2获得焦点
begin
FThis.Button2.SetFocus;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 4.1.2. BorderStyle 属性
property BorderStyle: TBorderStyle;
使用该属性可影响编辑组件的客户区域突出效果,当其取值为bsSingle,则编辑组件的客户区域会有一个单线边框;为bsNone,则无边框。
# 4.1.3. CanUndo 属性
property CanUndo: Boolean;
读取该属性可确定用户修改文本后是否通过调用Undo方法回退,在允许或禁止对应于这些命令的菜单项时这个属性非常有用。 示例:
begin
if This.Edit1.CanUndo then
This.Edit1.Undo;
end.
2
3
4
# 4.1.4. CharCase 属性
property CharCase: TEditCharCase;
该属性用于确定编辑组件中文本的大小写,可将编辑组件中的内容强制为特定的大小写。 可取值如下:
ecNormal:输入的文本不进行大小写转换。
ecLowerCase:把输入的文本强制转换为小写。
ecUpperCase:把输入的文本强制转换为大写。
应用
CharCase属性用于设置是否对Edit中的文本进行大小写转换。
procedure TMyHandler.BUTTON1CLICK;
//点击将文本转换为大写
begin
FThis.Edit1.CharCase := ecUpperCase;
end;
procedure TMyHandler.BUTTON2CLICK;
//点击将文本转换为小写
begin
FThis.Edit2.CharCase := ecLowerCase;
end;
2
3
4
5
6
7
8
9
10
11
# 4.1.5. HideSelection 属性
property HideSelection: Boolean;
该属性用于确定当焦点移走后所选文本是否保留视觉提示。设罝为False,编辑组件没有焦点时,所选文本部分仍保留视觉提示;否则只有在编辑组件获得焦点时,所选文本部分才保留视觉提示。该属性不影响选择的实际值,只是视觉提示。
- 应用
HideSelection属性用于确定当输入焦点离开时,是否仍然高亮显示选中的文本。
begin
This.Edit1.AutoSelect := True;
This.Edit1.HideSelection := False;
This.Edit1.SetFocus;
end.
2
3
4
5
# 4.1.6. MaxLength 属性
property MaxLength: Integer;
利用该属性可限制用户输入的字符数,为0表示字符的长度没有用户定义的限制。如果要将编辑组件中的文本复制到固定长度的缓冲区时,可用该属性限制编辑组件中的文本长度。 设置该属性并不截断已存在的文本,而仅在输入达到界限后阻止用户输入更多的文本。 示例
This.Edit1.MaxLength := 5
Edit1中最多允许存在5个字符,达到5个字符后将无法继续输入。
# 4.1.7. Modified 属性
property Modified: Boolean;
使用该属性确定编辑组件中的Text属性是否可修改。如果在应用程序中直接修改编辑组件中的Text属性,则应将这个属性设置为True。
- 应用
在程序中使用该属性能够确定编辑框文本是否发生了变化。
procedure TMyHandler.BUTTON1CLICK;
//检测Edit1是否有改动
begin
if FThis.Edit1.Modified then
ShowMessage('Edit1中内容已经改变');
end;
2
3
4
5
6
# 4.1.8. OEMConvert 属性
property OEMConvert: Boolean;
该属性用于确定输入编辑组件中的字符是否从ANSI转换为OEM,然后转换为ANSI。要保证编辑组件中输入的字符转换为OEM字符集,设置其为True,则使所有字符从ANSI转换为OEM,然后转为输入时的ANSI。如果不需要将文本映射到一个OEM字符串,则设置为False可避免转换的开销。该属性大多用在应用程序不用Unicode文件名时在编辑组件中输入文件名。
- True:文本框Edit中的文本能从ANSI转换为OEM。
- False:文本框Edit中的文本不能从ANSI转换为OEM
# 4.1.9. PasswordChar 属性
property PasswordChar: Char;
利用该属性可建立编辑组件中用代替输入字符显示的特殊字符。如果为空字符(ANSI字符为0),则编辑组件显示正常文本;如果为其他字符,则显示PasswordChar代替输入的字符。 该属性只影响编辑组件的外观,Text属性的值代表输入的实际值。
- 应用
begin
This.Edit1.PasswordChar := '*';
end.
2
3
# 4.1.10. Readonly 属性
property Readonly: Boolean;
该属性用于确定用户是否可改变编辑组件中的文本,为True时,则限制编辑组件只能显示, 确保组件中的文本不被修改,但允许用户选择文本,应用程序可处理所选文本,也可复制到剪 贴板;为False时,则允许编辑组件中的内容。
- 应用
begin
This.Edit1.ReadOnly := True;
This.Edit2.ReadOnly := False;
end.
2
3
4
# 4.1.11. SelLength 属性
property SelLength: Integer;
该属性用于指定所选文本的字符长度,设置后可改变从SelStart开始前的SelLength字符的选择。设罝其值大于从SelStart开始到文本结束的字符数,导致全选从SelStart开始到文本结束的字符。此时读取该属性返回实际所选取的字符数,而不是设置的值。
- 应用
SelLength属性用于返回在文本框TEdit中选中字符的长度,这样,在程序中就能通过代码使编辑框中的文本部分被选中。
procedure TMyHandler.BUTTON1CLICK;
//点击以选中部分文字
begin
FThis.Edit1.AutoSelect := True;
FThis.Edit1.SetFocus;
FThis.Edit1.SelStart := 1; //设定开始选中的起始位置
FThis.Edit1.SelLength := Length(FThis.Edit1.Text); //设定被选中区域的长度,延申至字符串尾。
end;
2
3
4
5
6
7
8
# 4.1.12. SelStart 属性
property SelStart: Integer;
读取该属性的值可确定第1个被选字符的位置,0指向第1个字符。如果没有所选文本, 则该属性指向光标的位置。设罝这个属性删除当前的选择并将光标位罝指向字符的前面。用法详见SelLength 属性。
# 4.1.13. SelText属性
property SelText: string;
读取该属性可确定被选文本的值,设置该属性可用新的字符牢替换已选文本。如果没有选择,但是编辑组件有焦点,则设置该属性可向光标处插入新的字符串。
- 应用
在SelLength 属性的例子中,加入如下代码,当Edit1中的文字被选中时,SelText中的内容就是Edit1中选中的内容。
procedure TMyHandler.BUTTON2CLICK;
//显示当前选中的文字内容
begin
ShowMessage(FThis.Edit1.SelText);
end;
2
3
4
5
# 4.1.14. Text 属性
property Text: TCaption;
Text属性用于读取或设置编辑框中的文本。
# 4.2. 事件
事 件 | 描 述 |
---|---|
OnChange | 当编辑组件中的文本发生改变时触发该事件,编其事件处理程序 可执行特定的功能 |
OnContextPopup | 当用户右击组件或用其他方式(键盘)调用弹出菜单时产生该组件,编辑其事件处理程序可在响应用户行为中创建或显示组件的弹出菜单。该事件允许应用程序集中响应用户的各种行为 |
OnEndDrag | 与对象的拖动结束后产生该事件 |
OnEnter | 当组件获得输入焦点时产生该事件 |
OnExit | 输入焦点从组件移至另一组件时产生该事件 |
OnKeyPress | 当用户按下单个字符键时产生该事件 |
# 4.3. 方法
- TEdit组件主要方法
方 法 | 描 述 |
---|---|
Clear | 该方法用于删除编輯组件中的所有文本,可使空字符串替换Text属性 |
ClearSelection | 该方法用于删除编辑组件中的所选文本 |
ClearUndo | 该方法用于淸除回退缓冲区,以使对文本所做的修改不能回退 |
# 4.3.1. Clear 方法*
procedure Clear; virtual;
该方法用于删除编辑组件中的所有文本,用户可使空字符牢替换Text属性。如果要删除所选文本,可使用ClearSelection方法。
# 4.3.2. ClearSelcction 方法*
procedure ClearSelection;
该方法用于删除编辑组件中的所选文本。如果无选择文本,则不执行操作;如果选择全部文本,则删除所有文本。调用该方法与为编辑组件发送WM_CLEAR消息相同。
# 4.3.3. ClearUndo 方法*
procedure ClearUndo;
该方法用于清除回退缓冲区,以使对文本所做的修改不能回退。使用该方法可确认Text属性的改变,在调用后,CanUndo属性为False并且Undo方法不执行任何操作。
# 5. TMemo组件
使用TMemo在窗体上放置标准Windows多行编辑组件。多行编辑框允许用户输入多行文本。它们适合表示冗长的信息。 TMemo实现了TCustomMemo中引入的通用行为。TMemo发布了许多从TCustomMemo继承的属性,但没有引入任何新行为。 注意:在Win9x下,此组件的文本限制为64k。
# 5.1. 属性
- TMemo组件主要属性
属性 | 功能说明 |
---|---|
Align | 确定组件在其父组件区内的对齐方式 |
Alignment | 确定文本在文本编辑组件中的对齐方式 |
Anchors | 指定组件如何停放在父窗体中 |
BevelEdges | 使用该属性可获得或设置组件成斜角的边缘 |
BevelInner | 使用该属性可指定内斜角是否具有凸、凹或平坦的外观 |
BevelKind | 使用该属性可修改斜角的风格,即斜角的倾斜程度 |
BevelOuter | 使用该属性可指定外斜角是否具有凸、凹或平坦的外观,外斜角直接显示在边框内和内斜角的外面 |
BiDiMode | 为组件指定双向模式,控制文本的顺序,垂直滚动条的位置以及是否改变对齐方式 |
BorderStyle | 使用该属性可影响编辑组件的客户区域突出效果,其取值为bsSingle时,编辑组件的客户区域有一个单线边框;为bsNone时,无边框 |
CharCase | 确定编辑组件中文本的大小写 |
Color | 指定组件的背景颜色 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
Ctl3D | 确定组件是否具有三维(3-D)或二维外观 |
DoubleBuffered | 确定组件的图像是直接渲染到窗口还是首先绘制到内存中的位图 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 确定组件如何启动拖放操作或拖挂操作 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
Font | 确定组件内显示的文本字体 |
HideSelectio | True:编辑组件有焦点时,文本选择的部分有视觉提示;False:即使编辑组件无焦点,文本选择的部分仍然有视觉反应 |
ImeMode | 设置该属性可配置IME处理用户按键的方法。对于亚洲语言字符,IME为前端输入处理器 |
ImeName | 设置该属性可配置IME名称 |
Lines | 包含备忘录组件中的各行文本 |
MaxLength | 利用该属性可限制用户输入的字符数,为0表示字符的长度没有限制 |
OEMConvert | 确定在编辑组件中键入的字符是否从ANSI转换为OEM,然后再转换回ANSI |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentColor | 组件要使用与其父组件相同的颜色 |
ParentCtl3D | 确定组件是否使用父组件的Ctl3D属性 |
ParentDoubleBuffered | 获得或设置组件是否使用父组件的DoubleBuffered属性 |
ParentFont | 确定组件是否使用父组件的Font |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
ReadOnly | 确定用户是否可以更改编辑组件的文本 |
ScrollBars | 确定是否为多行文本编辑器添加水平或垂直的滚动条 |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
TabOrder | 确定父组件的切换顺序 |
TabStop | 确定用户是否可以通过Tab按键选择组件 |
Visible | 确定组件是否可见 |
WantReturns | 确定用户是否可以在文本中插入返回字符 |
WantTabs | 确定用户是否可以在文本中插入制表符 |
WordWrap | 确定编辑组件是否插入软回车,以便文本在右边距处换行 |
# 5.1.1. Alignment 属性
property Alignment: TAlignment;
确定编辑组件中文本的对齐方式。 可选值如下:
- taLeftJustify:输入的文本在组件的左边对齐。
- taCenter:输入的文本在组件的居中对齐。
- taRightJustify:输入的文本在组件的右边对齐。
# 5.1.2. CaretPos 属性
Propetry CaretPos:TPoint;
指定相对于编辑器的客户区域原点的X和Y的位置。根据文本字符确定光标的位置时应使用SelStart属性。
- 应用
指出光标在TMemo组件中的位置。如显示当前光标在备注框中的行与列。
procedure TMyHandler.MEMO1MOUSEMOVE;
begin
FThis.Label1.Caption := '当前位置:' + IntToStr(FThis.Memo1.CaretPos.X) + ','
+ IntToStr(FThis.Memo1.CaretPos.Y);
end;
2
3
4
5
# 5.1.3. Lines 属性
property Lines: TStrings;
使用该属性能够以行为单位操作文本编辑器的文本,该属性是TStrings对象,所以TStrings的方法可用其完成各种操作,如计算文本的行数、添加一行、删除一行或用新的文本替代一行等。如果要处理所有文本,则使用Text属性;如果要处理文本的单行,则最好使用这个属性。虽然该属性作为TStrings的子类实现,但其不支持列表中与字符串对象相关的实现。
- 应用
在程序中如果需要向备注框中添加数据,则可以使用Lines属性的相关方法。
procedure TMyHandler.BUTTON1CLICK;
//点击以添加文字
begin
FThis.Memo1.Lines.Add('爱招飞系列产品');
FThis.Memo1.Lines.Add('Smart智慧控制平台');
FThis.Memo1.Lines.Add('快速开发智能监测程序');
end;
2
3
4
5
6
7
# 5.1.4. ScrollBars 属性
property ScrollBars: TScrollStyle;
该属性用于确定是否为多行文本编辑器添加水平或垂直滚动条。 可选值如下。
- ssNone:没有滚动条。
- ssBoth:水平、垂直都有滚动条。
- ssHorizontal:水平滚动条。
- ssVerticals垂直滚动条。
# 5.1.5. WantReturns 属性
property WantReturns: Boolean;
该属性用于确定Enter键是否为换行符,为True时,允许用户输入Enter键时文本换行; 否则输入Enter键时允许操作窗体而不是换行。例如在窗体中放置一个默认(如OK)按钮和一 个文本编辑组件,如果该属性为False,则按Enter键选择OK按钮;杏则将在文本编辑器中插 入一个换行符。该属性为False时,用户按下Ctrl+Enter组合键,也可在文本编辑器中插入一个换行符。
# 5.1.6. WantTabs 属性
property WantTabs: Boolean;
该属性用于确定用户可否插入制表符,为True时,允许在编辑文本中插入制表符;否则输 入Tab键将选择窗体上的下一个组件。设置该属性为True时,用户可在编辑器组件中制表,但是不能输出。
# 5.1.7. Wordwrap 属性
property Wordwrap: Boolean;
该属性用于确定编辑组件是否插入了软回车,以使文本到达右边界时换行。为True时,将自动换行填充客户区域。这种换行只是为了装饰文本,而不是在文本中真正插入回车符;为False 时,则只有在文本中输入回车符时才能换行。设罝该属性为True时,不需要使用水平方向的滚动条。
# 5.1.8. CanUndo 属性
property CanUndo: Boolean;
读取该属性可确定用户修改文本后足否通过调用Undo方法回退,在允许或禁止对应于这些命令的菜单项时这个属性非常有用。 示例代码:
begin
if FThis.Memo1.CanUndo then
FThis.Memo1.Undo;
end;
2
3
4
# 5.1.9. HideSelection 属性
property HideSelection: Boolean;
该属性用于确定焦点移走后所选文本是否保留视觉提示。设置为False并且编辑组件没有焦点时,所选文本部分仍保留视觉提示;否则只有在编辑组件获得焦点时,所选文本部分才保留视觉提示。该属性不影响选择的实际值,只是视觉提示。
# 5.1.10. MaxLength 属性
property MaxLength: Integer;
利用该属性可限制用户输入的字符数,为0,表示字符的长度没有用户定义的限制。如果要将编辑组件中的文本复制到同定长度的缓冲区时,可用该属性限制编辑组件中的文本长度。设置该属性并不截断已存在的文本,而仅在输入达到界限后阻止用户输入更多的文本。
# 5.1.11. Modified 属性
property Modified: Boolean;
使用该属性可确定编辑组件中的Text属性是否可修改。如果在应用程序中直接修改编辑组件中的文本,则应将这个属性设置为True。 代码示例
if FThis.Memo1.Modified then
ShowMessage('文本框中的数据发生了改变');
2
# 5.2. 事件
- TMemo组件主要事件
事 件 | 描 述 |
---|---|
OnChange | 当编辑组件中的文本发生改变时触发该事件,编其事件处理程序 可执行特定的功能 |
OnContextPopup | 当用户右击组件或用其他方式(键盘)调用弹出菜单时产生该组件,编辑其事件处理程序可在响应用户行为中创建或显示组件的弹出菜单。该事件允许应用程序集中响应用户的各种行为 |
OnEndDrag | 与对象的拖动结束后产生该事件 |
OnExit | 输入焦点从组件移至另一组件时产生该事件 |
# 5.3. 方法
- TMemo组件主要方法
方 法 | 描 述 |
---|---|
Clear | 删除编辑组件中的所有文本,可用空字符串替换Text属性 |
ClearSelection | 删除编辑组件中的所选文本 |
ClearUndo | 淸除回退缓冲区,以使对文本所做的修改不能回退 |
SelectAll | 选中备注框组件中的所有文本 |
Undo | 取消从最后调用ClearUndo方法以对Text属性所做的所有修改 |
# 6. TButton组件
使用TButton在窗体上放置标准按钮。TButton引入了几个属性来控制对话框设置中的行为。用户选择按钮组件来启动操作。命令按钮最常用的事件是 OnClick事件,该事件在用户单击按钮时被触发。 要使用显示位图而不是标签的按钮,请使用TBitBtn。要使用可以保持在按下位置的按钮,请使用TSpeedButton。 注意:由于TButton标题始终居中,因此更改BiDi对齐设置是无效的。
# 6.1. 属性
- TButton组件主要属性
属性 | 功能说明 |
---|---|
Action | 指定与组件关联的操作 |
Align | 确定组件在其父组件区内的对齐方式 |
Anchors | 指定组件如何停放在父窗体中 |
BiDiMode | 为组件指定双向模式,控制文本的顺序,垂直滚动条的位置以及是否改变对齐方式 |
Cancel | 确定按下Esc键时按钮的OnClick事件处理程序是否执行 |
Caption | 指定标识用户组件的文本字符串 |
CommandLinkHint | 文本显示为命令链接按钮标题下方的提示 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
Default | 确定按下Enter键时按钮的OnClick事件处理程序是否执行 |
DisabledImageIndex | 禁用按钮状态的图像索引 |
DoubleBuffered | 确定组件的图像是直接渲染到窗口还是首先绘制到内存中的位图 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 确定组件如何启动拖放操作或拖挂操作 |
DropDownMenu | 拆分按钮下拉菜单 |
ElevationRequired | 在按钮上放置盾牌图标,表示需要提升访问权限 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
Font | 确定组件内显示的文本字体 |
HotImageIndex | 热键状态的图像索引 |
ImageAlignment | 按钮上的图像对齐 |
ImageIndex | 正常按钮状态的图像索引 |
ImageMargins | 按钮上的图像边距 |
Images | 按钮的图像列表 |
ModalResult | 确定按钮是否以及如何关闭其(模态)父窗体 |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentDoubleBuffered | 获得或设置组件是否使用父组件的DoubleBuffered属性 |
ParentFont | 确定组件是否使用父组件的Font |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
PressedImageIndex | 按下按钮状态的图像索引 |
SelectedImageIndex | 所选按钮状态的图像索引 |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
Style | 按钮的样式 |
TabOrder | 确定父组件的切换顺序 |
TabStop | 确定用户是否可以通过Tab按键选择组件 |
Visible | 确定组件是否可见 |
WordWrap | 指定按钮文本是否换行以适合组件的宽度 |
# 6.1.1. Cancel 属性
property Cancel: Boolean;
该属性用于确定,Escape键被按下时是否执行按钮的OnClick事件处理程序。如果Cancel 为True,则执行。虽然应用程序可有多个Cancel按钮,但是窗体仅调用组件顺序中第1个可视的Cancel按钮的OnClick事件处理程序。
True:用户按下Esc键时TButton组件的OnClick事件被触发。
False:用户按下Esc键时TButton组件的OnClick事件不被触发。
应用
设置当用户按Esc键时是否触发OnClick事件,默认值为False。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.Button1.Cancel := True;
end;
procedure TMyHandler.BUTTON1CLICK;
//点击按钮以清空
var
i: Integer;
begin
for i := 0 to FThis.Panel1.ControlCount - 1 do
begin
if FThis.Panel1.Controls[i] is TEdit then
TEdit(FThis.Panel1.Controls[i]).Text := '';
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 6.1.2. Default 属性
property Default: Boolean;
当按下Enter键时,通过该属性来确定组件的OnClick事件处理程序是否被执行。如果Default为True,则执行。虽然应用程序可有多个Default按钮,但是窗体仅调用组件顺序中第 1个可视Default按钮的OnClick事件处理程序。而任何一个获得焦点的按钮可变为临时 Default的按钮。如果用户在按下Enter键前选择了另一个按钮,则执行所选按钮的OnClick事件处理程序。
True:用户按下Enter键时TButton组件的OnClick事件被触发。
False:用户按下Enter键时TButton组件的OnClick事件不被触发。
应用
在开发程序时,如果需要在其他非按钮组件获得焦点时,按Enter键响应按钮的OnClick事件,可以设置按钮的Default属性为True。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.Button1.Default := True;
FThis.Edit1.SetFocus;
end;
{方法实现 MODULE-REAL}
procedure TMyHandler.BUTTON1CLICK;
begin
ShowMessage('按钮已被按下');
end;
2
3
4
5
6
7
8
9
10
11
12
# 6.1.3. Caption 属性
property Caption: TCaption;
Caption属性用于设置按钮的标题。 如果需要在程序中动态地设置按钮标题,可以修改Caption属性,代码如下:
FThis.Button1.Caption := '确定';
# 6.1.4. Wordwrap 属性
property Wordwrap: Boolean;
Wordwrap属性用于标识按钮文本是否自动换行以适应按钮的宽度。
- True:标签中的文字长度,超出按钮长度时自动换行。
- False:标签中的文字长度,超出按钮长度时不自动换行。
# 6.2. 事件
- TButton主要事件
事 件 | 描 述 |
---|---|
OnClick | 当用户用鼠标单击按钮时触发OnClick事件 |
# 6.2.1. OnClick 事件
property OnClick: TNotifyEvent;
当用户用鼠标单击按钮时触发OnClick事件。
# 7. TCheckBox组件
TCheckBox组件为用户提供了一个选项。用户可以选中该框以选择该选项,或取消选中该选项以取消选择该选项。
# 7.1. 属性
- TCheckBox组件主要属性
属性 | 功能说明 |
---|---|
Action | 指定与组件关联的操作 |
Align | 确定组件在其父组件区内的对齐方式 |
Alignment | 确定复选框标签是否与复选框的左侧或右侧对齐 |
AllowGrayed | 确定复选框是否可以处于“灰色”状态 |
Anchors | 指定组件如何停放在父窗体中 |
BiDiMode | 为组件指定双向模式,控制文本的顺序,垂直滚动条的位置以及是否改变对齐方式 |
Caption | 指定标识用户组件的文本字符串 |
Checked | 指定是否选中按钮组件 |
Color | 指定组件的背景颜色 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
Ctl3D | 确定组件是否具有三维(3-D)或二维外观 |
DoubleBuffered | 确定组件的图像是直接渲染到窗口还是首先绘制到内存中的位图 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 确定组件如何启动拖放操作或拖挂操作 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
Font | 确定组件内显示的文本字体 |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentColor | 组件要使用与其父组件相同的颜色 |
ParentCtl3D | 确定组件是否使用父组件的Ctl3D属性 |
ParentDoubleBuffered | 获得或设置组件是否使用父组件的DoubleBuffered属性 |
ParentFont | 确定组件是否使用父组件的Font |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
State | 指示是选中,取消选中还是灰显复选框 |
TabOrder | 确定父组件的切换顺序 |
TabStop | 确定用户是否可以通过Tab按键选择组件 |
Visible | 确定组件是否可见 |
WordWrap | 指定按钮文本是否换行以适合组件的宽度 |
# 7.1.1. Alignment 属性
property Alignment: TLeftRight;
该属性用于控制复选框标题的位罝,设罝为taRightlustify时,标题显示在复选框右边;设置为taLeftJustify时,显示在左边。
- 应用
begin
This.CheckBox1.Alignment := taRightJustify;
This.CheckBox1.Alignment := taLeftJustify;
end.
2
3
4
# 7.1.2. AllowGrayed 属性
property AllowGrayed: Boolean;
该属性用于确定复选框是否处于灰色状态,设置为True时,复选框有3种可能的状态,即checked、unchecked和grayed;否则只有两种可能的状态:checked 和 unchecked。
# 7.1.3. Checked 属性
property Checked: Boolean;
当复选框是选中状态时,该属性值为True;当复选框是未选中或灰色状态时,为False。
- 应用
在窗体中添加TMemo组件。如果选项被选中,则添加选项信息到TMemo组件中。
procedure TMyHandler.BUTTON1CLICK;
//点击后,提交checkbox中的内容属性
var
Str : String;
begin
if FThis.CheckBox1.Checked = True then
Str := FThis.CheckBox1.Caption;
if FThis.CheckBox2.Checked = True then
Str := Str + ' ' + FThis.CheckBox2.Caption;
if FThis.CheckBox3.Checked = True then
Str := Str + ' ' + FThis.CheckBox3.Caption;
if FThis.CheckBox4.Checked = True then
Str := Str + ' ' + FThis.CheckBox4.Caption;
FThis.Memo1.Lines.Clear;
FThis.Memo1.Lines.Insert(0, '已选中的选项:');
FThis.Memo1.Lines.Insert(1, Str + ' ');
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 7.1.4. State 属性
property State: TCheckBoxState;
该属性指定复选框是选中、未选中或变灰状态。
cbUnchecked:复选框没有复选标记,表示用户未选中该选项。
cbChecked:复选框有复选标记,表示用户已选中该选项。
cbGrayed:复选框有复选标记,但为变灰状态。
应用
设置窗体中的TCheckBox组件的AllowGrayed属性为True,用State属性判断该组件的状态。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.CheckBox1.AllowGrayed := True;
end;
procedure TMyHandler.BUTTON1CLICK;
//设置窗体中的TCheckBox组件的AllowGrayed属性为True,用State属性判断该组件的状态,
var
cou: Integer;
begin
FThis.Memo1.Lines.Clear;
for cou := 0 to FThis.GroupBox1.ControlCount - 1 do
begin
if TCheckBox(FThis.GroupBox1.Controls[cou]).State = cbUnchecked then
FThis.Memo1.Lines.Add(TCheckBox(FThis.GroupBox1.Controls[cou]).Caption + ':没有选中');
if TCheckBox(FThis.GroupBox1.Controls[cou]).State = cbchecked then
FThis.Memo1.Lines.Add(TCheckBox(FThis.GroupBox1.Controls[cou]).Caption + ':选中');
if TCheckBox(FThis.GroupBox1.Controls[cou]).State = cbGrayed then
FThis.Memo1.Lines.Add(TCheckBox(FThis.GroupBox1.Controls[cou]).Caption + ':变为灰色');
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 8. TRadioButton组件
TRadioButton组件封装了 Windows选项按钮,有时也称为单选按钮。选项按钮在Windows中很常见,显示为一个带文本标题的圆形外框图。一组选项按钮中的选项是相互排斥的,同一 时刻只能有一个单选按钮被选中。 默认情况下,直接包含在同一窗口组件容器中的所有单选按钮(如TRadioGroup或TPanel)都会进行分组。例如,窗体上的两个单选按钮只有在包含在单独的容器(例如两个不同的组框)中时才能同时检查。
# 8.1. 属性
- TRadioButton组件主要属性
属性 | 功能说明 |
---|---|
Action | 指定与组件关联的操作 |
Align | 确定组件在其父组件区内的对齐方式 |
Alignment | 确定标题相对于单选按钮的位置 |
Anchors | 指定组件如何停放在父窗体中 |
BiDiMode | 为组件指定双向模式,控制文本的顺序,垂直滚动条的位置以及是否改变对齐方式 |
Caption | 指定标识用户组件的文本字符串 |
Checked | 确定是否选中了单选按钮所代表的选项 |
Color | 指定组件的背景颜色 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
Ctl3D | 确定组件是否具有三维(3-D)或二维外观 |
DoubleBuffered | 确定组件的图像是直接渲染到窗口还是首先绘制到内存中的位图 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 确定组件如何启动拖放操作或拖挂操作 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
Font | 确定组件内显示的文本字体 |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentColor | 组件要使用与其父组件相同的颜色 |
ParentCtl3D | 确定组件是否使用父组件的Ctl3D属性 |
ParentDoubleBuffered | 获得或设置组件是否使用父组件的DoubleBuffered属性 |
ParentFont | 确定组件是否使用父组件的Font |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
TabOrder | 确定父组件的切换顺序 |
TabStop | 确定用户是否可以通过Tab按键选择组件 |
Visible | 确定组件是否可见 |
WordWrap | 指定按钮文本是否换行以适合组件的宽度 |
# 8.1.1. Alignment 属性
property Alignment: TLeftRight;
该属性用于确定相对于单选按钮的标题位置:取值为TaLeftJustify时,显示在单选按钮的左边;取值为TaRightlustify时,显示在单选按钮的右边。不要将Alignment属性和单选按钮文本区的标题对齐相混淆。标题总是左对齐的。 该属性只控制文本区出现在组件的一边。 Alignment属性的可选值如下。
- taLeftJustify:标题显示在圆形按钮的左侧。
- taRightJustify:标题显示在圆形按钮的右侧。
# 8.1.2. Checked 属性
property Checked: Boolean;
该属性用于确定单选按钮足否被选中,若设置为True,则选中,并取消同一容器中其他所有单选按钮的选择;否则取消选择。
- True:可选择该组件,并使同组的其他组件恢复未选状态。
- False:该组件不是选中状态。
# 8.2. 方法
- TRadioButton组件主要方法列表
方法 | 功能描述 |
---|---|
GetControlsAlignment | 返回组件中任何文本的对齐方式 |
# 9. TListBox组件
使用TListBox显示用户可选择、添加或删除的项目的可滚动列表。TListBox是Windows列表框组件的包装器。对于专门的列表框,使用TCustomListBox的其他子类或从TCustomListBox派生自己的类。 TListBox实现了TCustomListBox中引入的泛型行为。TListBox发布了许多从TCustomListBox继承的属性,但没有引入任何新行为。
# 9.1. 属性
- TListBox组件主要属性
属性 | 功能说明 |
---|---|
Align | 确定组件在其父组件区内的对齐方式 |
Anchors | 指定组件如何停放在父窗体中 |
AutoComplete | 确定用户是否可以通过在列表中键入来聚焦项目 |
AutoCompleteDelay | 指定按键和尝试自动填充字段之间的延迟 |
BevelEdges | 使用该属性可获得或设置组件成斜角的边缘 |
BevelInner | 使用该属性可指定内斜角是否具有凸、凹或平坦的外观 |
BevelKind | 使用该属性可修改斜角的风格,即斜角的倾斜程度 |
BevelOuter | 使用该属性可指定外斜角是否具有凸、凹或平坦的外观,外斜角直接显示在边框内和内斜角的外面 |
BevelWidth | 使用该属性可指定内外斜角的像素宽度 |
BiDiMode | 为组件指定双向模式,控制文本的顺序,垂直滚动条的位置以及是否改变对齐方式 |
BorderStyle | 确定列表框是否具有边框 |
Color | 指定组件的背景颜色 |
Columns | 指定多列列表框中的列数,无需滚动即可显示 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
Ctl3D | 确定组件是否具有三维(3-D)或二维外观 |
DoubleBuffered | 确定组件的图像是直接渲染到窗口还是首先绘制到内存中的位图 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 确定组件如何启动拖放操作或拖挂操作 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
ExtendedSelect | 使用Shift和CTRL键使列表项多选操作 |
Font | 确定组件内显示的文本字体 |
ImeMode | 设置该属性可配置IME处理用户按键的方法。对于亚洲语言字符,IME为前端输入处理器 |
ImeName | 设置该属性可配置IME名称 |
IntegralHeight | 确定列表框是否显示部分项目 |
ItemHeight | 指定所有者-绘制列表框中项目的高度(以像素为单位) |
Items | 包含列表框中显示的字符串 |
MultiSelect | 指定用户是否可以选择多个项目 |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentColor | 组件要使用与其父组件相同的颜色 |
ParentCtl3D | 确定组件是否使用父组件的Ctl3D属性 |
ParentDoubleBuffered | 获得或设置组件是否使用父组件的DoubleBuffered属性 |
ParentFont | 确定组件是否使用父组件的Font |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
ScrollWidth | 指定列表框可以水平滚动的宽度(以像素为单位) |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
Sorted | 指定列表框中的项目是否按字母顺序排列 |
Style | 确定列表框是标准框还是所有者绘图以及它是否为虚拟列表框 |
TabOrder | 确定父组件的切换顺序 |
TabStop | 确定用户是否可以通过Tab按键选择组件 |
TabWidth | 指定列表框中选项卡的大小 |
Visible | 确定组件是否可见 |
# 9.1.1. AutoComplete 属性
properly AutoComplete: Boolean;
该属性用于设置是否自动将焦点移动到用户键盘输入的选项上。
- 应用
输入字符时,可以快速定位选项在ListBox中的位置。
begin
This.ListBox1.Items.Add('China');
This.ListBox1.Items.Add('American');
This.ListBox1.Items.Add('Japan');
This.ListBox1.Items.Add('England');
This.ListBox1.Items.Add('Gemany');
This.ListBox1.Items.Add('Chile');
This.ListBox1.AutoComplete := True;
end.
2
3
4
5
6
7
8
9
# 9.1.2. BorderStyle 属性
property BorderStyle: TBorderStyle;
该属性用于设置TListBox组件是否具有边框。 取值:bsNone, bsSingle。
# 9.1.3. Columns 属性
property Columns: Integer;
该属性用于指定TListBox的可见列数。
- 应用
设置Columns属性能够改变TListBox的可见列数。
begin
This.ListBox1.Items.Add('China');
This.ListBox1.Items.Add('American');
This.ListBox1.Items.Add('Japan');
This.ListBox1.Items.Add('England');
This.ListBox1.Items.Add('Gemany');
This.ListBox1.Items.Add('Chile');
This.ListBox1.Columns := 0;
This.ListBox2.Items.Add('China');
This.ListBox2.Items.Add('American');
This.ListBox2.Items.Add('Japan');
This.ListBox2.Items.Add('England');
This.ListBox2.Items.Add('Gemany');
This.ListBox2.Items.Add('Chile');
This.ListBox2.Columns := 1;
This.ListBox3.Items.Add('China');
This.ListBox3.Items.Add('American');
This.ListBox3.Items.Add('Japan');
This.ListBox3.Items.Add('England');
This.ListBox3.Items.Add('Gemany');
This.ListBox3.Items.Add('Chile');
This.ListBox3.Columns := 2;
end.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 9.1.4. Count 属性
property Count: Integer;
该属性用于获得TListBox组件中的选项数。
- 应用
在程序中可以通过Count统计选项个数,向窗体中添加一个TLabel组件,设置该组件的Caption属性为“列表中共有%d个选项。”。
begin
This.Label1.Caption := '列表中共有%d个选项';
This.ListBox1.Items.Add('China');
This.ListBox1.Items.Add('American');
This.ListBox1.Items.Add('Japan');
This.ListBox1.Items.Add('England');
This.ListBox1.Items.Add('Gemany');
This.ListBox1.Items.Add('Chile');
This.Label1.Caption := Format(This.Label1.Caption,[This.ListBox1.Count]);
end.
2
3
4
5
6
7
8
9
10
# 9.1.5. ExtendedSelect 属性
property ExtendedSelect: Boolean;
该属性用于决定是否可在TListBox中选取一个范围内的选项。
- 应用
当MultiSelect为True时该属性才发挥作用,能够选取连续的几个选项。
begin
This.ListBox1.MultiSelect := True;
This.ListBox1.Items.Add('China');
This.ListBox1.Items.Add('American');
This.ListBox1.Items.Add('Japan');
This.ListBox1.Items.Add('England');
This.ListBox1.Items.Add('Gemany');
This.ListBox1.Items.Add('Chile');
end.
2
3
4
5
6
7
8
9
# 9.1.6. IntegralHeight 属性
property IntegralHeight: Boolean;
该属性用于设置TListBox是否部分显示那些显示不全的选项。
# 9.1.7. ItemHeight 属性
property ItemHeight: Integer;
该属性用于设置TListBox中的选项高度。
# 9.1.8. Itemlndex 属性
property Itemlndex: Integer;
该属性用于指定和获取在当前列表中选择的选项。
- 应用
通过Itemlndex属性能够得到当前所选择的选项。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.ListBox1.Items.Add('China');
FThis.ListBox1.Items.Add('American');
FThis.ListBox1.Items.Add('Japan');
FThis.ListBox1.Items.Add('England');
FThis.ListBox1.Items.Add('Gemany');
end;
procedure TMyHandler.LISTBOX1CLICK;
//点击以显示当前选择的选项
begin
FThis.Label1.Caption := Format('当前选项: %s',
[FThis.ListBox1.Items.Strings[FThis.ListBox1.ItemIndex]]);
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 9.1.9. Items 属性
property Items: TStrings;
该属性用于指定TListBox中包含的所有选项。
- 应用
通过Items属性能够对TListBox中的每个选项进行操作
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.ListBox1.Items.Add('China');
FThis.ListBox1.Items.Add('American');
FThis.ListBox1.Items.Add('Japan');
FThis.ListBox1.Items.Add('England');
FThis.ListBox1.Items.Add('Gemany');
end;
{方法实现 MODULE-REAL}
procedure TMyHandler.BUTTON1CLICK;
//添加Edit1中的内容至ListBox
begin
if FThis.Edit1.Text <> '' then
begin
FThis.ListBox1.Items.Add(FThis.Edit1.Text);
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 9.1.10. MultiSelect 属性
property MultiSelect: Boolean;
该属性用于决定是否使用一次选择多项的功能。示例详见ExtendedSelect 属性
# 9.1.11. ScrollWidth 属性
property ScrollWidth: Integer;
该属性用于指定列表框的宽度,当该属性的值大于列表框宽度时将显示水平滚动条,否则隐藏滚动条。
# 9.1.12. SelCount 属性
property SelCount: Integer;
该属性返回当前选中的选项总数量。
- 应用
通过该属性能够返回选中选项的总数量。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.ListBox1.MultiSelect := True;
FThis.ListBox1.Items.Add('China');
FThis.ListBox1.Items.Add('American');
FThis.ListBox1.Items.Add('Japan');
FThis.ListBox1.Items.Add('England');
FThis.ListBox1.Items.Add('Gemany');
FThis.ListBox1.Items.Add('Chile');
end;
procedure TMyHandler.LISTBOX1CLICK;
begin
FThis.Label1.Caption := Format('总共选择了%d个选项!',[FThis.ListBox1.SelCount]);
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 9.1.13. Selected 属性
property Selected[Index: Integer]: Boolean;
该属性返回指定选项是否被选中。Index:索引号,该索引号为选项的编号。
# 9.1.14. Sorted 属性
property Sorted: Boolean;
该属性用于设置TListBox中的选项是否按字母顺序排列。
# 9.1.15. Style 属性
property Style: TListBoxStyle;
type TListBoxStyle = (lbStandard, IbOwnerDrawFixed, lbOwnerDraw Variable, lbVirtual, lbVirtualOwnerDraw);
2
该属性用于确定TListBox组件的风格。
- lbStandard:所有的选项都是字符串,并且高度相同。
- IbOwnerDrawFixed:列表中每一项的高度由ItemHeight属性抱定,且与每一项重绘时都会触发 OnDrawItem事件来绘制选项。
- IbOwnerDrawVariable:列表框中每一项的高度是可变的,并且与IbOwnerDrawFixed一样会触发OnDrawItem事件,但是选择该选项还会触发OnMeasureltem事件来设置每一项的高度。
- lbVirtual:列表是一个虚表,必须为列表指出选项的数量,必须为列表实现OnData、OnDataFind、 OnDataObject 事件。
- lbVirtualOwnerDraw:列表是一个虚表而且能够自绘,必须为列表指出选项的数量,必须为列表实现 OnDrawItem 、OnData OnDataFind、OnDataObject事件。
# 9.1.16. TabWidth 属性
property TabWidth: Integer;
该属性用于设罝Tab制表符的宽度。
# 9.1.17. Toplndex 属性
property Toplndex: Integer;
该属性用于设置当前所能看到的选项中在最顶端的选项的索引编号。
# 9.2. 事件
- TListBox主要事件
事 件 | 描 述 |
---|---|
OnContextPopup | 当右击该组件时触发该事件 |
OnData | 当virtual类型的TListBox需要补充选项中的文字时触发该事件 |
# 9.2.1. OnData 事件
property OnData: TLBGetDataEvent;
type
TLBGetDataEvent = procedure(Control: TWinControI; Index: Integer; var Data: String) of object;
2
3
OnData事件使得TListBox能够动态地载入数据项,在程序中能够动态地为TListBox组件添加和修改数据项,或者为数据项赋值。这种机制大大增加了 TListBox使用的灵活性,应用代码如下:
type
TMyHandler = class(TForm)
var
MyItem : Array [0..9] of String;
private
FThis:TBaseForm;
Public
constructor Create(AOwner: TComponent); override;
{模块声明 MODULE-DECLARE}
procedure ListBox1Data(Control: TWinControl; Index: Integer; var Data: string);
end;
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.ListBox1.Style := lbVirtual;
MyItem[0] := '张三';
MyItem[1] := '李四';
MyItem[2] := '王五';
MyItem[3] := '赵六';
FThis.ListBox1.Count := 4;
end;
{方法实现 MODULE-REAL}
procedure TMyHandler.ListBox1Data;
begin
Data := MyItem[index];
end;
var
FMyHandler:TMyHandler;
begin
FMyHandler := TMyHandler.Create(this);
{事件绑定 MODULE-BIND}
this.ListBox1.OnData := FMyHandler.ListBox1Data;
end.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 9.3. 方法
- TListBox主要方法
方 法 | 描 述 |
---|---|
AddItem | 向TListBox中添加一个选项 |
Clear | 清空列表中的所有选项 |
ClearSelection | 取消所有已经选择的选项 |
ItemAtPos | 返回指定坐标点上的选项索引 |
DeleteSelected | 删除所选择的选项 |
SelectAll | 选择TListBox中的所有选项 |
MoveSelection | 将所有选择的选项移动到另一个TListBox组件中 |
# 9.3.1. AddItem 方法
procedure AddItem(Item: String; AObject: TObject);
该方法用于向TListBox中添加一个选项。其中Item
为显示字符串的选项,AObject
为关联的对象选项。
向TListBox中添加一项,例如添加一个Modbus设备,示例代码如下:
FThis.ListBox1.AddItem('Modbus Device 1',FThis.ModbusRTUReadChannel1.ModbusList[0]);
# 9.3.2. Clear 方法
procedure Clear;
该方法用于清空列表中的所有选项。
# 9.3.3. ClearSelection 方法
procedure ClearSelection;
取消所有已经选择的选项。在TListBox允许多选(MultiSelect
为True
)的情况下,如果想要取消所选择的选项,则可以调用ClearSelection 方法,示例如下:
procedure TMyHandler.Button1Click;
begin
FThis.ListBox1.ClearSelection;
end;
2
3
4
# 9.3.4. ItemAtPos 方法
function ItemAtPos(Pos: TPoint; Existing: Boolean): Integer;
该方法用于返回指定坐标点上的选项索引。
- Pos: 坐标点。
- Existing: 是否返回现有选项,如果Existing为True,则当坐标点没有选项时返回-1;如果 Existing为False,则当坐标点没有选项时返回最后一个选项的索引。
- 返回值: 返回一个表示当前坐标所在项的索引的整型值。
在程序运行时,可以通过鼠标移动消息处理函数来获得当前鼠标所在的选项,代码如下:
{模块声明 MODULE-DECLARE}
procedure ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X: Integer; Y: Integer);
...
procedure TMyHandler.ListBox1MouseMove;
var
s: TPoint;
i: Integer;
begin
s.X := x;
s.Y := y;
i := FThis.ListBox1.ItemAtPos(s, True);
FThis.Label1.Caption := '鼠标指向:' + FThis.ListBox1.Items.Strings[i];
end;
...
{事件绑定 MODULE-BIND}
this.ListBox1.OnMouseMove := FMyHandler.ListBox1MouseMove;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 9.3.5. DeleteSelected 方法
procedure DeleteSelected; override;
该方法用于删除所选择的选项。在程序运行时如果想删除某些选项的话就要用到该方法,在TListBox中选择选项,然后调用DeleteSelected方法就能够将选中的选项删除。该方法在Style为lbStandard时能够删除列表中的选项,如果在Style为其他值时必须提供其他操作。
FThis.ListBox1.DeleteSelected;
# 9.3.6. SelectAll 方法
procedure SelectAll;override;
该方法用于选择TListBox中的所有选项。
# 9.3.7. MoveSelection 方法
procedure MoveSelection(Destination: TCustomListControl); virtual;
该方法将所有选择的选项移动到另一个TListBox组件中。
- Destination: 移动目标,可以是任何TCustomListControl继承下来的组件。
在两个TListBox中移动选项,使用MoveSelection方法是最方便的,代码如下:
FThis.ListBox1.MoveSelection(FThis.ListBox2);
# 10. TComboBox 组件
TComboBox组件是一个编辑框,其上附有可滚动的下拉列表。用户可以从列表中选择项目或直接在编辑框中输入。 注意:TComboBox中按钮的宽度等于Windows用于滚动条的宽度。此宽度取决于用户选择的颜色方案(通过右键单击桌面,选择“属性”,然后选择“外观”)。在WindowsXP上,用户可以通过单击“高级”按钮并选择滚动条作为项目来专门更改滚动条的宽度。如果仔细调整组合框的大小以使所有文本都可见,则以不同颜色方案运行的用户可能会发现文本被按钮遮挡。一种解决方案是在开发应用程序时将滚动条设置为宽。大多数配色方案使用最多21像素宽的滚动条。
# 10.1. 属性
- TComboBox组件主要属性
属性 | 功能说明 |
---|---|
Align | 确定组件在其父组件区内的对齐方式 |
Anchors | 指定组件如何停放在父窗体中 |
AutoCloseUp | 指定当用户选择项目时,下拉列表是否自动关闭 |
AutoComplete | 键入时匹配列表项的位置 |
AutoCompleteDelay | 指定按键和尝试自动填充字段之间的延迟 |
AutoDropDown | 指定下拉列表是否会自动降低以响应用户击键 |
BevelEdges | 使用该属性可获得或设置组件成斜角的边缘 |
BevelInner | 使用该属性可指定内斜角是否具有凸、凹或平坦的外观 |
BevelKind | 使用该属性可修改斜角的风格,即斜角的倾斜程度 |
BevelOuter | 使用该属性可指定外斜角是否具有凸、凹或平坦的外观,外斜角直接显示在边框内和内斜角的外面 |
BiDiMode | 为组件指定双向模式,控制文本的顺序,垂直滚动条的位置以及是否改变对齐方式 |
CharCase | 确定组合框中文本的大小写 |
Color | 指定组件的背景颜色 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
Ctl3D | 确定组件是否具有三维(3-D)或二维外观 |
DoubleBuffered | 确定组件的图像是直接渲染到窗口还是首先绘制到内存中的位图 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 控制用户何时可拖动组件 |
DropDownCount | 指定下拉列表中显示的最大项目数 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
Font | 确定组件内显示的文本字体 |
ImeMode | 设置该属性可配置IME处理用户按键的方法。对于亚洲语言字符,IME为前端输入处理器 |
ImeName | 设置该属性可配置IME名称 |
ItemHeight | 指定下拉列表中项目的高度(以像素为单位) |
ItemIndex | 指定所选项的索引 |
Items | 提供对组合框列表部分中项目(字符串)列表的访问 |
MaxLength | 指定用户可以在组合框的编辑部分中键入的最大字符数 |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentColor | 组件要使用与其父组件相同的颜色 |
ParentCtl3D | 确定组件是否使用父组件的Ctl3D属性 |
ParentDoubleBuffered | 获得或设置组件是否使用父组件的DoubleBuffered属性 |
ParentFont | 确定组件是否使用父组件的Font |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
Sorted | 确定组合框的列表部分是否按字母顺序排列 |
Style | 确定组合框的显示样式 |
TabOrder | 确定父组件的切换顺序 |
TabStop | 使用该属性可允许或不允许用Tab访问组件 |
Text | 包含与组件关联的文本字符串 |
TextHint | 指定在组合框组件的编辑框中显示为文本水印的文本 |
Visible | 确定组件是否可见 |
# 10.1.1. AutoCloseUp 属性
property AutoCloseUp: Boolean;
确定当用户选择一个选项后是否自动关闭下拉列表。当TComboBox组件的AutoCloseUp属性设置为False时,用户输入一个列表中己有的选项TComboBox组件不会自动关闭。当TComboBox组件的AutoCloseUp属性设置为True时,用户输入一个列表中已有的选项后,TComboBox组件会自动关闭。
注意: 当AutoComplete属性为True时,在TComboBox组件的文本框输入字符时,下拉列表中将显示与之匹配的内容。
# 10.1.2. AutoComplete 属性
property AutoComplete: Boolean;
该属性用于设置TComboBox组件是否提供自动完成文字输入的功能。AutoComplete属性为False时,TComboBox不提供自动完成的功能,AutoComplete属性为True时,TComboBox提供自动完成的功能。
# 10.1.3. AutoDropDown 属性
property AutoDropDown: Boolean;
该属性决定TComboBox组件是否在用户敲击键盘时自动拉开。
# 10.1.4. CharCase 属性
property CharCase: TEditCharCase;
type TEditCharCase = (ecNormal, ecUpperCase, ecLowerCase);
2
该属性确定在TComboBox中输入字母的格式。
取 值 | 作 用 |
---|---|
ecLowerCase | 全部小写 |
ecNonnal | 正常 |
ecUpperCase | 全部大写 |
# 10.1.5. SelText 属性
property SelText: string;
SelText能够返回TComboBox中用户选择的文字,示例代码如下:
procedure TMyHandler.ComboBox1KeyUp;
begin
FThis.Edit1.Text := FThis.ComboBox1.SelText;
end;
2
3
4
该属性只当TComboBox组件获得焦点时才能够获得所选中的文字,否则返回空字符串。
# 10.1.6. Sorted 属性
property Sorted: Boolean;
该属性用于决定列表是否按字母顺序排列。将该属性设置为True后能够使列表中的选项重新按照字母顺序排列。
# 10.1.7. Style 属性
property Style: TComboBoxStyle;
type TComboBoxStyle = (csDropDown, csSimple, csDropDownList, csOwnerDrawFixed, csOwnerDraw Variable);
2
取 值 | 作 用 |
---|---|
csDropDown | 创建一个下拉列表框和一个编辑框,所有的选项字符串都是同样的高度 |
csSimple | 创建一个编辑框和一个固定的列表 |
csDropDownList | 创建一个没有编辑框的下拉列表,用户不能手动输入文字,所有选项都是同等高度的字符串 |
csOwnerDrawFixed | 创建一个没有编辑框的自绘下拉列表,每个选项的高度由ItemHeight属性指定 |
csOwnerDrawVariable | 创建一个没有编辑框的自绘下拉列表,列表中的选项高度可变 |
# 10.1.8. DropDownCount 属性
property DropDownCount: Integer;
该属性用于指定下拉列表最多显示的选项数。DropDownCount属性指定了下拉列表弹出显示的选项列数,如果选项的数量多于DropDownCount属性值时,列表的右边会出现一个滚动条。
# 10.1.9. DroppedDown 属性
property DroppedDown: Boolean;
该属性用于确定当前下拉列表是否己经打开并正在显示,如果为True则表示已经打开,通常作为一个返回值使用。
# 10.1.10. Itemlndex 属性
property Itemlndex: Integer;
Itemlndex返回的是用户选择的选项的索引值,通过该值能够返回用户所选择的选项。
# 10.1.11. Items 属性
property Items: TStrings;
利用该属性能够对TComboBox中的列表进行访问。
# 10.1.12. MaxLength 属性
property MaxLength: Integer;
该属性用于设置用户最多能够在编辑框中输入的字符数。
# 10.1.13. SelLength 属性
property SelLength: Integer;
该属性用于获得用户在TComboBox的编辑框中选择的文本长度。
# 10.2. 事件
事 件 | 描 述 |
---|---|
OnChange | 当用户修改TComboBox编辑框中的文字时触发该事件 |
OnCloseUp | TComboBox组件的下拉列表关闭时触发该件 |
OnContextPopup | 当用户右击组件或用其他方式(键盘)调用弹出菜单时触发该事件 |
OnDropDown | TComboBox组件的下拉列表弹出时触发该事件 |
OnExit | 输入焦点从组件移至另一组件时产生该事件 |
OnMeasureltem | 与csOwnerDrawVariable炎型的TComboBox组件中的选项需要重 新显示时触发该事件 |
OnSelect | 当用户在列表中选择一个字符串时触发该事件 |
OnStartDock | 当用户开始拖动组件时产生该事件 |
# 10.3. 方法
方 法 | 描 述 |
---|---|
AddItem | 向下拉列表中添加选项 |
Clear | 清除TComboBox列表中的所有选项和编辑框中的义字 |
ClearSelection | 设置Itemlndex属性为-1 |
CopySelection | 复制己经选择的选项到另一个组合框中 |
DeleteSelected | 删除TComboBox中所选择的选项 |
Focused | 确定TComboBox组件是否获得焦点 |
MoveSelection | 将所选择的选项移动到另一个TComboBox中 |
SelectAll | 选择TComboBox编辑框中的所有文本 |
# 10.3.1. AddItem 方法
procedure Addltem(ltem: String; AObject: TObject);
该方法用于向下拉列表中添加选项。
- Item: 添加项的字符串值。
- AObject: 关联的对象。
向TComboBox中添加一个选项,关联一个对象,并通过选项能够读取和操作对象。本应用是向列表中添加一些单选按钮,通过选择列表中的选项就能够选择指定的单选按钮。
FThis.ComboBox1.Clear;
FThis.ComboBox1.AddItem('RadioButton1',FThis.RadioButton1);
FThis.ComboBox1.AddItem('RadioButton2',FThis.RadioButton2);
FThis.ComboBox1.AddItem('RadioButton3',FThis.RadioButton3);
2
3
4
# 10.3.2. Clear 方法
procedure Clear; override;
通过该方法能够淸除TComboBox列表中的所有选项和编辑框中的文字。
# 10.3.3. ClearSelection 方法
procedure ClearSelection; override
该方法用于设置Itemlndex属性为-1。清空TComboBox组件编辑框中的文本,并设置Itemlndex属性为-1,即当前没有选择选项。
# 10.3.4. CopySelection 方法
procedure CopySelection (Destination: TCustomListControl); override;
该方法用于将己经选择的选项复制到另一个框中。
Destination: 复制选项的目标组件,该组件可以是任何Destination继承而来的类实例。
# 10.3.5. DcleteSelected 方法
procedure DeleteSelected; override
该方法用于删除在TComboBox中所选择的选项。在运行程序时,如果想要将TComboBox列表中的选项删除,可以使用DeleteSelected方法。
# 10.3.6. Focused 方法
function Focused: Boolean; override;
该方法用于确定TComboBox组件是否获得焦点。
# 10.3.7. MoveSelection 方法
procedure MoveSelection(Destination: TCustomListControl); virtual;
该方法用于将所选择的选项移动到另一个TComboBox中。
Destination: 移动选项的目标组件,该组件可以是任何Destination继承而来的类实例。
# 11. TImageComboBox 组件
TImageComboBox组件是一个编辑框,其上附有可滚动的下拉列表。用户可以从列表中选择项目。该组件中的选项是从数据库中进行获取的,用户无法自行手动添加。
# 11.1. 属性
- TImageComboBox组件主要属性
属性 | 功能说明 |
---|---|
Enabled | 是否让该组件响应鼠标或按键操作 |
ItemIndex | 设置默认选择的选项 |
# 11.2. 方法
# 11.2.1. FillSQL
procedure FillSQL(ASQL:UnicodeString);
该方法可将查询到的结果回传至选项中,需要注意回传的内容格式需包含FID
(主键字段)以及FName
(显示的选项字段)。例如下方的例子:
FThis.ImageComboBox1.FillSQL('SELECT FReportID AS FID,FReportName AS FName FROM Dict_Report');
# 12. TScrollBar组件
TScrollBar是一个Windows滚动条,用于滚动窗口,窗体或组件的内容。 使用TScrollBar向窗体添加独立滚动条。许多组件都具有添加滚动条的属性,滚动条是组件的一个组成部分(TControlScrollBar对象)。TScrollBar允许在用户操作TScrollBar对象时滚动没有集成滚动条或组件分组的组件。 当滚动条的双向模式改变时,其坐标系被反转。从左到右模式的位置0是左侧,从右到左模式的位置0是右侧。
# 12.1. 属性
- TScrollBar组件主要属性
属性 | 功能说明 |
---|---|
Align | 确定组件在其父组件区内的对齐方式 |
Anchors | 指定组件如何停放在父窗体中 |
BiDiMode | 为组件指定双向模式,控制文本的顺序,垂直滚动条的位置以及是否改变对齐方式 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
Ctl3D | 确定组件是否具有三维(3-D)或二维外观 |
DoubleBuffered | 确定组件的图像是直接渲染到窗口还是首先绘制到内存中的位图 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 控制用户何时可拖动组件 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
Kind | 指定滚动条是水平还是垂直 |
LargeChange | 确定用户单击拇指选项卡两侧的滚动条或按PgUp或PgDn时位置的更改量 |
Max | 指定滚动条表示的最大位置 |
Min | 指定滚动条表示的最小位置 |
PageSize | 指定缩略图选项卡的大小 |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentCtl3D | 确定组件是否使用父组件的Ctl3D属性。 |
ParentDoubleBuffered | 获得或设置组件是否使用父组件的DoubleBuffered属性 |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
Position | 指示滚动条的当前位置 |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
SmallChange | 确定用户单击滚动条上的箭头按钮或按下键盘上的箭头键时位置的更改量 |
TabOrder | 确定父组件的切换顺序 |
TabStop | 使用该属性可允许或不允许用Tab访问组件 |
Visible | 确定组件是否可见 |
# 12.2. 事件
- TScrollBar组件主要事件列表
事件 | 何时触发 |
---|---|
OnScroll | 当用户使用鼠标或键盘滚动滚动条时,将触发该事件 |
# 12.3. 方法
- TScrollBar组件主要方法列表
方法 | 功能描述 |
---|---|
SetParams | 一次性设置Position,Max和Min属性值 |
# 13. TGroupBox 组件
TGroupBox表示Windows组框。 TGroupBox组件表示标准Windows组框,用于对窗体上的相关组件进行分组。当另一个组件组件放置在组框内时,组框将成为该组件的父组件。
# 13.1. 属性
- TGroupBox组件主要属性
属性 | 功能说明 |
---|---|
Align | 确定组件在其父组件区内的对齐方式 |
Anchors | 指定组件如何停放在父窗体中 |
BiDiMode | 为组件指定双向模式,控制文本的顺序,垂直滚动条的位置以及是否改变对齐方式 |
Caption | 指定标识用户组件的文本字符串 |
Color | 指定组件的背景颜色 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
Ctl3D | 确定组件是否具有三维(3-D)或二维外观 |
DockSite | 使用该属性可确定组件是否为拖动和停靠操作目标 |
DoubleBuffered | 确定组件的图像是直接渲染到窗口还是首先绘制到内存中的位图 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 控制用户何时可拖动组件 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
Font | 确定组件内显示的文本字体 |
Padding | 指定组件的填充 |
ParentBackground | 确定组件是否使用父级的主题背景 |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentColor | 组件要使用与其父组件相同的颜色 |
ParentCtl3D | 确定组件是否使用父组件的Ctl3D属性 |
ParentDoubleBuffered | 获得或设置组件是否使用父组件的DoubleBuffered属性 |
ParentFont | 确定组件是否使用父组件的Font |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
TabOrder | 确定父组件的切换顺序 |
TabStop | 使用该属性可允许或不允许用Tab访问组件 |
Visible | 确定组件是否可见 |
# 14. TRadioGroup 组件
TRadioGroup代表一组共同作用的单选按钮。 TRadioGroup对象是一个特殊的组框,仅包含单选按钮。直接放置在同一控制组件中的单选按钮被称为“分组”。当用户单选按钮时,其组中的所有其他单选按钮都将取消选中。因此,只有将窗体放在单独的容器(例如组框)中时,才能同时检查窗体上的两个单选按钮。 要将单选按钮添加到TRadioGroup,请编辑对象查看器中的Items属性。Items中的每个字符串都会在组框中显示一个单选按钮,并将字符串作为其标题。ItemIndex属性的值确定当前选择的单选按钮。 通过设置“列”属性,在单列或多列中显示单选按钮。 注意: 将组的BiDiMode设置为bdRightToLeft会自动翻转其单选按钮。FlipChildren方法无效。
# 14.1. 属性
- TRadioGroup组件主要属性
属性 | 功能说明 |
---|---|
Align | 确定组件在其父组件区内的对齐方式 |
Anchors | 指定组件如何停放在父窗体中 |
BiDiMode | 为组件指定双向模式,控制文本的顺序,垂直滚动条的位置以及是否改变对齐方式 |
Caption | 指定标识用户组件的文本字符 |
Color | 指定组件的背景颜色 |
Columns | 指定单选按钮组中的列数 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
Ctl3D | 确定组件是否具有三维(3-D)或二维外观 |
DoubleBuffered | 确定组件的图像是直接渲染到窗口还是首先绘制到内存中的位图 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 控制用户何时可拖动组件 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
Font | 确定组件内显示的文本字体 |
ItemIndex | 指示当前选择组中的哪个单选按钮 |
Items | 列出单选按钮组中的单选按钮 |
ParentBackground | 确定组件是否使用父级的主题背景 |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentColor | 组件要使用与其父组件相同的颜色 |
ParentCtl3D | 确定组件是否使用父组件的Ctl3D属性 |
ParentDoubleBuffered | 获得或设置组件是否使用父组件的DoubleBuffered属性 |
ParentFont | 确定组件是否使用父组件的Font |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
TabOrder | 确定父组件的切换顺序 |
TabStop | 使用该属性可允许或不允许用Tab访问组件 |
Visible | 确定组件是否可见 |
WordWrap | 指定单选按钮的文本是否包装以适合组的宽度 |
# 15. TPanel 组件
TPanel实现了通用面板组件。 使用TPanel将空面板放在窗体上。面板具有在组件周围提供斜面边框的属性,以及管理嵌入面板中的子组件放置的方法。 您还可以使用面板将组件组合在一起,类似于使用组框的方式,但使用斜面边框(或无边框)而不是组框轮廓。面板通常用于单个窗体内的组件组。如果您打算在其他窗体中使用相同的分组,则可能需要使用框架。 在编写使用拖放的应用程序时,没有边框的面板可用作停靠点。
# 15.1. 属性
- TPanel组件主要属性
属性 | 功能说明 |
---|---|
DockManager | 指定组件的停靠管理器界面 |
Align | 确定组件在其父组件区内的对齐方式 |
Alignment | 确定标题在面板中的对齐方式 |
Anchors | 指定组件如何停放在父窗体中 |
AutoSize | 指定组件是否自动调整大小以容纳其内容 |
BevelEdges | 使用该属性可获得或设置组件成斜角的边缘 |
BevelInner | 确定面板内斜角的样式 |
BevelKind | 使用该属性可修改斜角的风格,即斜角的倾斜程度 |
BevelOuter | 确定面板外斜面的样式 |
BevelWidth | 确定面板内外斜面的宽度(以像素为单位) |
BiDiMode | 为组件指定双向模式,控制文本的顺序,垂直滚动条的位置以及是否改变对齐方式 |
BorderStyle | 确定围绕面板组件周边绘制的线条样式 |
BorderWidth | 指定外斜面和内斜面之间的距离(以像素为单位) |
Caption | 指定标识用户组件的文本字符串 |
Color | 指定组件的背景颜色 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大或最小值时,重新调整组件的大小不能超出该限制 |
Ctl3D | 确定组件是否具有三维(3-D)或二维外观 |
DockSite | 使用该属性可确定组件是否为拖动和停靠操作目标 |
DoubleBuffered | 确定组件的图像是直接渲染到窗口还是首先绘制到内存中的位图 |
DragCursor | 当前组件受拖动时光标的形状 |
DragKind | 获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 控制用户何时可拖动组件 |
Enabled | 控制组件是否响应鼠标,键盘和计时器事件 |
Font | 确定组件内显示的文本字体 |
FullRepaint | 确定面板在调整大小时重新绘制自身的方式 |
Locked | 确定用作工具栏的面板是否被OLE服务器提供的工具栏替换 |
Padding | 指定组件的填充 |
ParentBackground | 确定组件是否使用父级的主题背景 |
ParentBiDiMode | 获得或设置组件是否使用其父组件的BiDiMode属性 |
ParentColor | 组件要使用与其父组件相同的颜色 |
ParentCtl3D | 确定组件是否使用父组件的Ctl3D属性 |
ParentDoubleBuffered | 获得或设置组件是否使用父组件的DoubleBuffered属性 |
ParentFont | 确定组件是否使用父组件的Font |
ParentShowHint | 确保窗体中的所有组件以统一格式显示帮助提示 |
PopupMenu | 在组件上单击光标右键时出现的弹出式菜单 |
ShowCaption | 指定是否显示面板组件的标题 |
ShowHint | 确定当鼠标指针暂时停留在组件上时组件是否显示“帮助提示” |
TabOrder | 确定父组件的切换顺序 |
TabStop | 使用该属性可允许或不允许用Tab访问组件 |
UseDockManager | 指定是否在拖放操作中使用停靠管理器 |
VerticalAlignment | 设置标题的垂直位置 |
Visible | 确定组件是否可见 |
# 16. TActionList 组件
TActionList维护组件和组件可以使用的操作列表,例如菜单项和按钮。 使用操作列表集中响应用户命令(操作)。操作列表组件维护应用程序中客户端组件可用的操作列表。从组件面板的标准页面向窗体或数据模块添加操作列表组件。双击操作列表以显示操作列表编辑器,您可以从中添加,删除和重新排列操作。 注意:TActionList主要用于管理跨平台应用程序中的操作。虽然始终可以使用TActionList维护应用程序的操作,但使用操作管理器可能更简单。
# 16.1. 属性
- TActionList组件主要属性
属性 | 功能说明 |
---|---|
Images | 列出可用于操作列表中的操作的图像 |
State | 当用户触发客户端对象时,操作列表中的操作是否响应 |
# 16.2. 事件
- TActionList组件主要事件列表
事件 | 何时触发 |
---|---|
OnChange | 在操作列表中发生更改时触发该事件。 |
OnExecute | 客户端对象在列表中触发操作时触发该事件。 |
OnStateChange | 在OnChange事件之后触发该事件。 |
OnUpdate | 在应用程序空闲时触发该事件,以便操作列表可以更新列表中的特定操作。 |
# 17. TBarCode 组件
TBarCode组件用于展示条形码。在使用该组件时,请先确认所需的条码编码格式。
# 17.1. 属性
- TBarCode组件主要属性
属性 | 功能说明 |
---|---|
FitMode | 位于Properities属性组中, |
ModuleColor | 位于Properities属性组中,获取或设置条形码组件的显示颜色 |
ModuleWidth | 位于Properities属性组中,显示组件的宽度倍数,用以放大或缩小显示区域 |
RotationAngle | 位于Properities属性组中,设置组件的顺时针旋转角度 |
ShowText | 位于Properities属性组中,设置是否在条形码下方显示对应文字 |
Symbology | 位于Properities属性组中,设置条形码的编码格式,当选择为QRCode时展示为二维码 |
Text | 设置条形码显示的数值信息,根据编码格式显示的数值内容会有变化,当Symbology为QRCode时可输入字符 |
引用Properities属性组中的属性
FThis.BarCode1.Properties.ShowText := True;
# 18. TWebBrowser 组件
该组件用于调用浏览器进行网页浏览。
# 18.1. 方法
# 18.1.1. Navigate 方法
procedure Navigate(const URL : WideString);
该方法用于指定浏览器打开的网页。
FThis.WebBrowser1.Navigate('https://www.baidu.com');
# 19. TIdHTTPServer 组件
该组件实现了一个简易的HTTP服务器的功能,用来实现对数据库的连接功能。
# 19.1. 属性
属性 | 功能说明 |
---|---|
DefaultPort | 设置默认的服务端口 |
# 19.2. 事件
事件 | 描述 |
---|---|
OnCommandGet | 当获取到命令时触发该事件 |
# 20. TIdTCPClient 组件
TIdTCPClient组件实现了TCP的客户端部分功能,它封装了一个完整的TCP客户端,包括对套接字的支持。该组件可用来实现专门协议的组件的父类。
# 20.1. 属性
属性 | 功能说明 |
---|---|
BoundIP | 指定客户端连接使用的本地IP地址,当与服务器连接时使用此属性值初始化绑定 |
BoundPort | 指定本地连接中的首选端口号,即建立客户连接的本地端口号的整数 |
Host | 指定所要连接的远程计算机的IP地址或计算机名称 |
Intercept | 该属性是TidConnectionlntercept类型,允许截取连接的读写操作 |
LocalName | 本地计算机的主机名 |
MaxLineLength | 最大连接数 |
Port | 指定客户端连接服务器所使用的端口号 |
ReadTimeout | 该属性是一个只读属件,用于判断Read方法是否超时 |
RecvBufferSize | 指定连接所用的接收缓冲区的大小,默认为8192字节 |
ReadLnTimedOut | 该属件是一个只读属性,用于判断ReadLn方法是否超时 |
SendBufferSize | 指定连接所用的写缓冲区的最大字节数,默认为32768字节 |
# 20.2. 方法
方法 | 描述 |
---|---|
Connect | 连接数据库,使用该方法之前必须指定Host属性和Port属性 |
CancelWriteBuffer | 停止向缓冲区写入数据 |
ClearWriteBuffer | 清除写缓冲区 |
Connected | 判断连接是否被激活 |
CurrentReadBuffer | 返回当前缓冲区中的数据 |
Disconnect | 断开与服务器的连接 |
DisconnectSocket | 关闭当前连接的套接字的绑定 |
InputLn | 从服务器读取一行数据并返回该行数据 |
ReadBuffer | 从缓冲区中读取AByteCount长度的数据存入ABuffer参数中 |
ReadCardinal | 从连接中读取一个32位无符号整型值 |
Readlnteger | 从缓冲区中读取一个4字节的二进制整型值 |
ReadLn | 从缓冲区中读取一行数据并作为返回值 |
ReadLnWait | 返回单行数据。使用默认的分隔符和超时设置 |
ReadSmallint | 从连接中读取一个整型值,范围在0-255之间 |
ReadStream | 从缓冲区中读取数据并存入AStream参数指定的流中,AByteCount 参数用来指定读取的字节数 |
ReadString | 从缓冲区中读取由ABytes参数指定字节的字符串 |
WaitFor | 从连接中读取数据直到遇到AString参数指定的字符串为止 |
Write | 将AOut参数指定的字符串发送到连接,若参数为空则不发送 |
WriteBuffer | 将缓冲区中的数据发送到连接 |
WriteCardinal | 发送一个32位的无符号整型值到连接 |
WriteFile | 将AFile参数指定的本地系统的文件发送到连接,与AEnableTransferFile参数为True时,服务器增加传输选项的功能 |
Writelnteger | 将一个二进制整型值发送到连接 |
WriteLn | 将AOut参数指定的字符串发送到连接 |
WriteSmalllnt | 将AValue参数中的一个小整型值发送到连接 |
WriteStream | 将AStream参数指定的流发送到连接 |
WriteStrings | 将AValue参数中的多行文本发送到连接 |
# 21. TIdTCPServer 组件
该组件封装了一个完整的多线程TCP服务器。
# 21.1. 属性
属性 | 功能说明 |
---|---|
Active | 该属性值为True时,服务器开启等待客户端与其建立连接 |
Bindings | 该属性是包含服务器分配套接字句柄的容器 |
CommandHandlers | 指定服务器使用的命令句柄 |
CommandHandersEnabled | 指定在对等线程连接的执行过程中是否使用CommandHandlers |
DefauItPort | 指定服务器与客户端连接所用的端口号 |
Greeting | 指定监听线程接收到线程客户连接时,发送到对等方的标识信息 |
Intercept | 该属性用来识别套接字数据的句柄。该属性允许程序开发者创建一个Tidlntercept的派生类对数据进行加密或解密、压缩或解压缩 |
IOHandler | 指定监听线程所使用的IOHandler |
ImplicitThreadMgr | 指定是否使用隐含的线程管理者为服务器创建和释放线程 |
ListenQueue | 指定系统允许未解决的连接尝试次数的最大值 |
MaxConnectionReply | 指定连接到服务器的对等连接数超过MaxConnections属性值时使用的RFC消息响应 |
MaxConnections | 指定服务器允许对等连接数的最大值 |
ReplyExceptionCode | 指定在服务器上下文中出现异常时使用的数字结果代码 |
ReplyTexts | 指定服务器实现中使用的协议响应 |
ReplyUndnownCommand | 指定在客户接收到未知命令时使用的RFC响应 |
ReuseSocket | 指定监听线程是否可以重用本地地址 |
TeminateWaitTiine | 设置服务器终止线程时所等待的时间 |
ThreadClass | 在为服务器创建新的线程时指定ThreadMgr使用的线程类型 |
ThreadMgr | 给服务器指定一个线程管理者并为其提供扩展机制 |
Threads | 它是一个容器,包含连接到服务器的所有等同线程。这些线程是由监听线程所产生的 |
# 21.1.1. 事件
事件 | 描述 |
---|---|
OnAfterCommandHandler | 使用CommandHandlers作为对等线程连接服务器后触发该事件 |
OnBeforeCommandHandler | 使用CommandHandlers作为对等线程连接服务器前触发该事件 |
OnConnect | 当有一个客户端与服务器连接时就会触发该事件 |
OnDisconnect | 当有一个客户端与服务器断开连接时就会触发该事件 |
OnException | 对等线程的执行过程中出现异常时触发该事件 |
OnExecute | 与服务器与客户端建立一个新的连接时服务器会为这个连接建立一个线程,该事件就是在这个线程运行时被触发的 |
OnListenException | 在监听线程的执行过程中出现异常时触发该事件 |
OnNoCommandHandler | 无法定位命令句柄时触发该事件 |
OnStatus | 当连接状态改变时触发该事件 |
ThreadMgr | 连接线程管理者所产生的事件 |
# 22. TFlying 组件
TFlying组件是配合Flying使用的组件,将必要的打印配置传递给该组件的属性,执行组件的方法即可将数据传递至打印服务器进行打印操作。在使用该组件前请先阅读Flying使用手册。
# 22.1. 属性
# 22.1.1. HTTPOptions
使用 HTTP 打印模式时使用的属性选项。其中的相关属性项目说明如下:
属性 | 说明 |
---|---|
Host | Flying打印服务端地址 |
Port | Flying HTTP/WebSocket 打印服务监听的端口号 |
SSL | 是否启用SSL |
# 22.1.2. MailOptions
邮件相关设置选项。
属性 | 说明 |
---|---|
Addr | 接收邮箱的地址 |
Body | 邮件的正文内容 |
Enable | 是否启用邮件发送的功能 |
Subject | 邮件的标题 |
# 22.1.3. MQTTOptions
使用 MQTT 打印模式时使用的属性选项。其中的相关属性项目说明如下:
属性 | 说明 |
---|---|
BrokerHost | MQTT 服务端的地址 |
BrokerPort | MQTT 服务端服务监听的端口号 |
Enabled | 设置是否启用 MQTT 连接 |
PrintPwd | 打印的密码 |
PrintTopic | 打印服务订阅的主题名称 |
SSL | 是否启用SSL |
UserName | MQTT 服务的用户名 |
UserPwd | MQTT 服务的密码 |
# 22.1.4. PrintOptions
打印服务的相关设置项。
属性 | 说明 |
---|---|
Data | 输入的打印数据,可通过 AddPrintData 方法自动生成 |
ExportFileType | 设置导出的文件类型 |
ExportFileUrl | 设置导出文件的URL |
Preview | 设置是否启用文件预览 |
PrintCopies | 设置文件的打印份数 |
PrinterName | 设置打印机的名称,可通过 GetPrinerList 方法获取打印机名称 |
PrintOffsetX | 打印偏移 X |
PrintOffsetY | 打印偏移 Y |
PrintType | 设置打印模式,可选 HTTP 、MQTT 、WebSocket |
ReportName | 设置打印的报表模板的名称,可指定报表模板的文件名(*.fr3 )或者报表模板的别名 |
ReportUrl | 设置打印的报表的输出地址 |
ReportVersion | 报表版本号 |
TaskID | 打印的任务ID,设置此项可用于区分不同打印客户端的打印请求 |
Token | 令牌,可用于打印客户端的身份认证 |
# 22.1.5. WebSocketOptions
使用 WebSocket 进行打印时的设置项。
属性 | 说明 |
---|---|
Authentication | 是否启用 WebSocket 身份认证 |
Compressed | 是否启用数据压缩 |
Enabled | 是否启用 WebSocket 通讯连接 |
Host | WebSocket 连接的主机的地址(Flying 服务端的地址) |
Password | WebSocket 使用身份认证连接时使用的密码 |
Port | WebSocket 服务监听的端口号 |
SSL | 是否启用 SSL 连接 |
SSLPort | 启用SSL 连接时监听的 WebSocket 服务端口号 |
URL | WebSocket 服务路径 |
UserName | WebSocket 使用身份认证连接时使用的用户名称 |
# 22.2. 事件
# 22.2.1. OnReceivedError事件
procedure FlyingOnReceivedError(ASender: TObject; AError:String);
当打印过程中出现错误时,可触发此事件。AError
中包含了错误的提示信息。
# 22.2.2. OnReceivedExport事件
procedure FlyingOnReceivedExport(ASender: TObject; AUrl:String);
当打印包含输出的文件时触发事件,AUrl
中包含了输出文件的路径。
# 22.2.3. OnReceviedPrinter事件
procedure FlyingOnReceivedExport(ASender: TObject; APrinterList:String);
当Flying 向客户端发送打印机列表的信息时触发事件。APrinterList
中包含了打印机列表等信息。
# 22.3. 方法
- TFlying组件主要方法
方法 | 功能说明 |
---|---|
GetPrinterList | 获取Flying服务端可用的打印机列表 |
打印报表 | |
ReportPrint | 直接打印 |
ReportPreview | 报表预览 |
AddPrintData | 打印数据组装 |
# 22.3.1. GetPrinterList 方法
procedure GetPrinterList;
该组件用户获取当前Flying打印服务器中可用的打印机列表。可通过如下方式来获取打印机列表:
procedure TMyHandler.Button2Click;
//加载打印机
begin
FThis.Flying1.GetPrinterList;
end;
procedure TMyHandler.Flying1ReceivedPrinter;
//获取打印机列表
begin
FThis.ComboBoxPrinter.Items.CommaText := APrinterList;
if FThis.ComboBoxPrinter.Items.Count <> 0 Then
FThis.ComboBoxPrinter.ItemIndex := 0;
FThis.ComboBoxPrinter.DroppedDown := True;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 22.3.2. ReportPrint方法
procedure ReportPrint;
ReportPrint方法是呼叫Flying,进行报表打印。
//Pirnt
Procedure btnPrintOnClick(Sender: TObject);
Begin
if FThis.Combobox1.Count = 0 Then exit;
FThis.Flying1.PrinterName := FThis.Combobox1.Items[FThis.Combobox1.ItemIndex];//读取打印机名称
FThis.RFDataSet1.openData;//打开数据
FThis.Flying1.PrintOptions.Data.Clear;
FThis.Flying1.AddPrintData(FThis.RFDataSet1,'A');//数据集转Json
FThis.Flying1.ReportPrint;//打印报表
End;
procedure TMyHandler.Flying1ReceivedExport;
//输出
var
F: TBaseForm;
begin
if FThis.SwitchButton1.IsChecked then
begin
F := paxfunc.OpenForm('Form1');
F.TagObject := FThis;
TChrome(F.FindComponent('Chrome1')).Active := True;
TChrome(F.FindComponent('Chrome1')).Uri := AUrl;
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 22.3.3. ReportPreview方法
procedure ReportPreview;
ReportPreview方法是呼叫Flying中间件,进行报表输出,并回传到客户端显示。
//Pirnt
Procedure btnPrintOnClick(Sender: TObject);
Begin
if FThis.Combobox1.Count = 0 Then exit;
FThis.Flying1.PrinterName := FThis.Combobox1.Items[FThis.Combobox1.ItemIndex];//读取打印机名称
FThis.RFDataSet1.openData;//打开数据
FThis.Flying1.PrintOptions.Data.Clear;
FThis.Flying1.AddPrintData(FThis.RFDataSet1,'A');//数据集转Json
FThis.Flying1.ReportPreview;//报表预览
procedure TMyHandler.Flying1ReceivedExport;
//输出
var
F: TBaseForm;
begin
if FThis.SwitchButton1.IsChecked then
begin
F := paxfunc.OpenForm('Form1');
F.TagObject := FThis;
TChrome(F.FindComponent('Chrome1')).Active := True;
TChrome(F.FindComponent('Chrome1')).Uri := AUrl;
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 22.3.4. PrintPdf方法
procedure PrintPdf(AUrl: String);
从网络地址获取 PDF 文件并发送至 Flying 服务端执行打印。
# 22.3.5. PrintPic方法
procedure PrintPic(AUrl: String);
从网络地址获取图片文件并发送至 Flying 服务端执行打印。
# 23. TPDFViewer 组件
该组件用于显示对应路径下的pdf文件。
# 23.1. 方法
# 23.1.1. LoadFromFile 方法
打开PDF文件以显示。
FThis.PDFViewer1.LoadFromFile('test.pdf');
# 24. TSwitchButton组件
表示用于应用程序的可切换图片按钮。
每当您需要为用户提供开关状态时,请使用TSwitchButton。
# 24.1. 属性(Properties)
- TSwitchButton组件主要属性
属性 | 功能说明 |
---|---|
IsChecked | 指定按钮切换状态 |
Bitmap | 当前按钮所显示的状态图片 |
SwitchOffBmp | 指定按钮关闭时的状态图片 |
SwitchOffBmp | 指定按钮打开时的状态图片 |
# 24.1.1. IsChecked属性
property IsChecked: Boolean read FIsChecked write SetIsChecked default True;
指定切换图片按钮显示代表不同状态的图片。
IsChecked=True为显示SwitchOffBmp图片,False时显示SwithchOnBmp图片。
# 24.1.2. Bitmap属性
property Bitmap: TBitmap read GetBitmap write SetBitmap;
当前按钮所显示的状态图片。
# 24.1.3. SwitchOffBmp属性
property SwitchOffBmp: TBitmap read GetBitmap write SetBitmap;
指定按钮关闭时的状态图片。
# 24.1.4. SwitchOffBmp属性
property SwitchOffBmp: TBitmap read GetBitmap write SetBitmap;
指定按钮打开时的状态图片。
# 24.2. 事件(Events)
- TfxSwitchButton组件主要事件
事件 | 何时触发 |
---|---|
OnSwitch | 当Switch的IsChecked的值发生变化时触发 |
# 24.2.1. OnSwitch事件
property OnSwitch: TNotifyEvent read GetOnSwitch write SetOnSwitch;
TSwitchButton更改IsChecked的值时调用的事件处理程序
# 24.3. 示例(Code)
TSwitchButton更改IsChecked的值时处理程序。
Procedure fxSwitch1OnSwitch(Sender: TObject);
Begin
if fxSwitch1.IsChecked Then
Showmessage('Switch On.')
else
Showmessage('Switch Off.');
End;
2
3
4
5
6
7