系统控件
# Smart 控件使用(系统)
系统控件包含一些设备通讯协定使用到的控件、计时控制的相关控件。
# 1. TComPort组件
TComPort组件提供了程序内组件的COM连接接口,可供其他组件调用以连接COM端口与设备进行通信。
# 1.1. 属性
- TComPort组件主要属性
属性 | 功能说明 |
---|---|
Active | 是否激活该组件 |
BaudRate | 获取或设置串行波特率 |
BufferSizes | 缓存区设定 |
Characters | 设定控制字符 |
CustBaudRate | 获取或设置自定义串行波特率 |
DataBits | 获取或设置每个字节的标准数据位长度 |
DeviceName | 组件对应的连接端口名称 |
FlowControl | 流控制设置选项 |
Parity | 指定ComPort对象的奇偶校验位 |
PriorityClass | 指示系统将与进程关联的优先级,此值与进程的每个线程的优先级值一起来确定每个线程的基本优先级别 |
StopBits | 指定在ComPort对象上使用的停止位的数目 |
ThreadPriority | 指定线程的优先级别 |
# 1.1.1. DataBits 属性
获取或设置每个字节的标准数据位长度。默认为dbDefault,其余选项包括db4~db8。
# 1.1.2. FlowControl 属性
设置通信时的数据流控制选项。包含以下属性选项设置。
- DTR:在串行通信过程中启用数据终端就绪 (DTR) 信号。
- RTS:在串行通信中启用请求发送 (RTS) 信号。
- XOffLimit、XOnLimit、XOnXOff为流控制协议及其限制设置,只要通信双方根据通信状况使用相同的配置协议即可。
# 1.1.3. Parity 属性
指定ComPort对象的奇偶校验位。包含如下选项。
- paDefault:默认选项。
- paEven:设置奇偶校验位,使位数等于偶数。
- paMark:将奇偶校验位保留为 1。
- paNone:不发生奇偶校验检查。
- paOdd:设置奇偶校验位,使位数等于奇数。
- paSpace:将奇偶校验位保留为 0。
# 1.1.4. PriorityClass 属性
指示系统将与进程关联的优先级。 此值与进程的每个线程的优先级值一起来确定每个线程的基本优先级别。包含如下选项。
- pcDefault:默认选项。
- pcHigh:指定进程执行必须立即执行的时间关键任务,不管操作系统的负荷如何,用户调用该对话框后均必须迅速响应。 该进程的线程优先于普通或空闲优先级类进程的线程。为进程的优先级类指定High 这一个优先级时需谨慎,因为高优先级类应用程序几乎可以使用所有可用的处理器时间。
- pcIdle:指定此进程的线程只能在系统空闲时运行,如屏幕保护程序。 更高优先级类中运行的任何进程的线程都优先于此进程的线程。 此优先级类由子进程继承。
- pcNormal:指定进程没有特殊的安排需求。
- pcRealTime:指定进程拥有可能的最高优先级。具有 RealTime 优先级的进程的线程抢占所有其他进程的线程,包括执行重要任务的操作系统进程。 因此,执行时间并不太短的 RealTime 优先级进程可能导致磁盘高速缓存不刷新或鼠标无响应。
# 1.1.5. StopBits 属性
指定在ComPort对象上使用的停止位的数目。有如下选项。
- sbDefault:默认选项。
- sb1:使用一个停止位。
- sb1_5:使用1.5个停止位。
- sb2:使用两个停止位。
# 1.2. 事件
- TComPort主要事件
事件 | 何时触发 |
---|---|
AfterClose | 在端口关闭后触发该事件 |
AfterOpen | 在端口打开后触发该事件 |
BeforeClose | 在端口关闭前触发该事件 |
BeforeOpen | 在端口打开前触发该事件 |
# 2. TTimer组件
Timer定时器是一个非可视化组件,能够定时触发OnTimer事件,完成模拟时钟、系统延时、倒计时等工作。
# 2.1. 属性
- TTimer组件主要属性
属性 | 功能说明 |
---|---|
Enabled | 规定组件是否响应鼠标、键盘和计时器事件 |
Interval | 规定时间间隔、以毫秒为单位 |
# 2.2. 事件
- TTimer组件主要事件列表
事件 | 何时触发 |
---|---|
OnTimer | 当经过固定时间(在interval属性中设置)时,将触发该事件 |
# 3. TPaintBox组件
TPaintBox是一个图形组件,只有聊聊几个函数和属性,主要就是Canvas和Paint函数。
# 3.1. 属性
- TPaintBox组件主要属性
属性 | 功能说明 |
---|---|
Canvas | 用图片组件实现画布 |
Align | 决定容器(父组件)对该组件的归属方式 |
Anchors | 该属性指定组件如何停放在其父窗体中 |
Color | 规定组件的背景颜色 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大值或最小值时,重新调整组件的大小不能超出该限制 |
DragCursor | 当拖动组件时显示的鼠标指针图像类型 |
DragKind | 使用该属性可获取或设置组件是拖动操作还是拖动/停靠操作 |
DragMode | 使用该属性可控制用户何时可拖动组件 |
Enabled | 规定组件是否响应鼠标、键盘和计时器事件 |
Font | 规定组件中的文字字体属性 |
ParentFont | 规定组件是否继承父组件的字体属性信息 |
ParentShowHint | 使用该属性可确保窗体中的所有组件以统一格式显示或不显示其帮助提示 |
PopupMenu | 将组件与菜单栏中的位置绑定 |
Position | 滚动条在组件中的位置 |
ShowHint | 当鼠标光标悬停在组件上时是否显示提示内容 |
Visible | 规定该组件在窗体上是否可见 |
# 3.2. 事件
- TPaintBox组件主要事件列表
事件 | 何时触发 |
---|---|
OnPaint | 当组件接收到windows图片时,将触发该事件 |
# 3.3. 方法
- TPaintBox组件主要方法列表
方法 | 功能描述 |
---|---|
Paint | 产生OnPaint事件 |
# 4. TMediaPlayer组件
TMediaplayer提供了媒体控制界面(MCI),包含一系列的按钮(播放、停止等)。
# 4.1. 属性
- TMediaPlayer组件主要属性
属性 | 功能说明 |
---|---|
Capabilities | 决定开放媒体设备的能力 |
DeviceID | 开放媒体设备的ID |
DisplayRect | 展示区域 |
EndPos | 在当前载入的媒体中确定用于断点以在当前位置停止播放或录制 |
Error | 返回MCI界面的错误代码 |
ErrorMessage | 用于描述错误代码对应的错误提示信息 |
Frames | 规定移动的帧数 |
Length | 媒体的长度 |
Mode | 当前媒体设备的状态 |
Notify | 决定OnNotify事件是否启用 |
NotifyValue | 描述需要返回通知的媒体组件方法的结果 |
Position | 展示当前加载媒体的位置 |
Start | 确定媒体开始播放的位置 |
StartPos | 从开始播放或录制的位置设定起始位置 |
TimeFormat | 用于确定位置信息的时间格式 |
TrackLength | 报告音轨/视频轨道的长度 |
Wait | 只有当按钮的方法完成后才能返回使按钮可用 |
Anchors | 该属性指定组件如何停放在其父窗体中 |
AutonEnable | 是否自动启用或禁用按钮 |
AutoOpen | 当应用运行时是否自动开始播放 |
AutoRewind | 是否在播放或录制前自动倒带 |
ColoredButtons | 规定含有颜色的组件按钮 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大值或最小值时,重新调整组件的大小不能超出该限制 |
DeviceType | 设定打开媒体播放器的多媒体设备类型 |
Display | 设定输出显示的窗口 |
DoubleBuffered | 确定组件图像是直接在窗口渲染或者是首先在内容中生成位图 |
Enabled | 规定组件是否响应鼠标、键盘和计时器事件 |
EnableButtons | 确认哪些按键可以使用 |
FileName | 媒体文件的名称,多媒体文件可任选WAV、MID或AVI文件 |
ParentShowHint | 使用该属性可确保窗体中的所有组件以统一格式显示或不显示其帮助提示 |
PopupMenu | 将组件与菜单栏中的位置绑定 |
Shareable | 是否超过一个应用可共享媒体文件 |
Position | 滚动条在组件中的位置 |
ShowHint | 当鼠标光标悬停在组件上时是否显示提示内容 |
Visible | 规定该组件在窗体上是否可见 |
VisibleButtons | 组件按钮是否可见 |
# 4.2. 事件
- TMediaPlayer组件主要事件列表
事件 | 何时触发 |
---|---|
OnClick | 当组件点击按钮时,将触发该事件 |
OnNotify | 当媒体组件方法完成后,触发该事件 |
# 4.3. 方法
- TMediaPlayer组件主要方法列表
方法 | 功能描述 |
---|---|
Back | 在当前载入的媒体中设定返回一定的帧 |
Close | 关闭打开的媒体设备 |
Eject | 从媒体设备中发布载入的媒体 |
Next | 移动至下一轨载入媒体的开头 |
Open | 打开一个媒体设备 |
Pause | 触发打开的媒体为开或关 |
PauseOnly | 暂停打开的媒体设备 |
Play | 播放在媒体设备中加载的媒体 |
Previous | 将位置设定为前一个媒体文件的开头 |
Resume | 恢复对暂停媒体的录制及播放 |
Rewind | 设定当前位置为媒体的开始,存储在Start属性中 |
Save | 将当前加载的媒体保存为文件,文件名为FileName属性配置 |
StartRecording | 开始录制,起点为当前位置或是在StartPos属性中设置的位置 |
Step | 在当前加载的媒体中播放一定数量的帧 |
Stop | 停止播放或录制 |
# 5. TOleContainer组件
使用ToleContainer组件可添加OLE2.0组件。TOleContainer能够使用户通过调用InsertObjectDialog方法选择OLE对象插入(例如Word文档、Excel文档、PowerPoint文档、文本文档等)。TOleContainer可以创建OLE对象或者是链接到OLE对象。
# 5.1. 属性
- TOleContainer组件主要属性
属性 | 功能说明 |
---|---|
CanPaste | Windows剪切板中可以包含能够复制到OLE容器的OLE对象 |
Linked | OLE对象可链接或嵌入 |
Modified | OLE对象是否修改 |
NewInserted | OLE对象是否新建而不是粘贴或创建为文件链接 |
ObjectVerbs | 列举OLE对象的支持动作 |
OleClassName | 规定OLE对象的类名 |
OleObject | 展示OLE容器中的OLE对象 |
OleObjectInterface | 提供OLE对象的界面 |
PrimaryVerb | 规定OLE对象的主要动作信息 |
SourceDoc | 为链接的OLE对象指定来源文档的名称 |
State | 描述OLE对象的状态 |
StorageInterface | 提供OLE对象的存储界面 |
Align | 决定容器(父组件)对该组件的归属方式 |
AllowActiveDoc | 是否允许OLE容器支持IOleDocumentSite界面 |
AllowInPlace | OLE容器是否支持原地激活 |
Anchors | 该属性指定组件如何停放在其父窗体中 |
AutoActivate | OLE容器中的对象的激活方式 |
AutoVerbMenu | OLE容器是否创建包含OLE对象动作的菜单 |
BorderStyle | 规定组件的边界类型 |
Caption | 定义组件的文字描述信息 |
Color | 规定组件的背景颜色 |
Constraints | 使用该属性可指定组件宽度和高度的最小值和最大值,当其包含最大值或最小值时,重新调整组件的大小不能超出该限制 |
CopyOnSave | 调用SaveToFile和SaveToStream方法是否首先创建OLE对象的副本 |
Ctl3D | 规定组件的视觉外观是3D还是2D |
DragCursor | 当拖动组件时显示的鼠标指针图像类型 |
DragMode | 使用该属性可控制用户何时可拖动组件 |
Enabled | 规定组件是否响应鼠标、键盘和计时器事件 |
Iconic | OLE对象是否以图标形式展现 |
OldStreamFormat | OLE对象是否以VCL格式加载和保存 |
ParentShowHint | 使用该属性可确保窗体中的所有组件以统一格式显示或不显示其帮助提示 |
PopupMenu | 将组件与菜单栏中的位置绑定 |
ShowHint | 当鼠标光标悬停在组件上时是否显示提示内容 |
TabOrder | 规定组件在父组件中的换栏位置序号 |
TabStop | 使用该属性可允许或不允许用Tab键访问组件 |
Visible | 规定该组件在窗体上是否可见 |
# 5.2. 事件
- TOleContainer组件主要事件列表
事件 | 何时触发 |
---|---|
OnActivate | 当OLE对象激活时,将触发该事件 |
OnDeactivate | 当OLE对象取消激活时,触发该事件 |
OnObjectMove | OLE容器中OLE对象移动或大小改变发出通知时,触发该事件 |
OnResize | OLE容器窗口大小改变时,触发该事件 |
# 5.3. 方法
- TOleContainer组件主要方法列表
方法 | 功能描述 |
---|---|
ChangeIconDialog | 展示改变OLE图标的对话框 |
Close | 取消对OLE对象的激活 |
Copy | 将OLE对象复制到Windows剪切板 |
CreateLinkToFile | 从文件内容中创建一个OLE链接对象 |
CreateObjectFromFile | 创建一个嵌入的OLE对象 |
CreateObjectFromInfo | 匹配TCeateInfo记录创建OLE对象 |
DestroyObject | 销毁容器中的OLE对象 |
Doverb | 要求OLE对象执行动作 |
GetIconMetaPict | 返回包含OLE对象图标的元文件的全局内存句柄 |
InsertObjectDialog | 展示插入OLE对象的对话框 |
LoadFromFile | 从指定文件中载入OLE对象 |
LoadFromStream | 从指定流中载入OLE对象 |
ObjectPropertiesDialog | 显示OLE对象属性的属性表格 |
Paste | 将Windows剪切板中的内容粘贴作为嵌入对象 |
PasteSpecialDialog | 展示粘贴特殊OLE对话框 |
Run | 运行OLE对象的服务应用,但是不激活或打开OLE对象 |
SaveAsDocument | 将OLE对象保存为本地OLE文档格式 |
SaveToFile | 将OLE对象保存至指定文件 |
SaveToStream | 将OLE对象保存至指定流 |
UpdateObject | 刷新OLE对象 |
UpadateVerbs | 刷新OLE对象可以相应的动作列表 |
# 6. TDdeClientConv组件
使用TDdeClientConv组件,使用TDdeClientItem对象运行DDE(动态数据交换)客户端的应用
# 6.1. 属性
- TDdeClientConv组件主要属性
属性 | 功能说明 |
---|---|
Conv | 定义当前DDE对话的句柄 |
DataMode | DDE对话的部分是否自动执行 |
DdeFmt | 表示用于提交或请求数据项的剪贴板格式。 |
WaitStat | 指示服务器是否正在为禁止异步DDE事务的DDE宏提供服务。 |
ConnectMode | 确定在打开窗体时是否自动建立到DDE服务器的链接。 |
DdeService | 指定要链接到DDE客户端的DDE服务器应用程序。 |
DdeTopic | 指定DDE对话的主题 |
FormatChars | 确定是否从DDE服务器应用程序传输的文本数据中过滤掉某些字符。 |
ServiceApplication | 指定DDE服务器应用程序的主可执行文件名(如果需要可带路径),不带.EXE扩展名。 |
# 6.2. 事件
- TDdeClientConv组件主要事件列表
事件 | 何时触发 |
---|---|
OnClose | 当DDE对话终止时,将触发该事件 |
OnOpen | 当在建立到服务器的DDE链接后,触发该事件 |
# 6.3. 方法
- TDdeClientConv组件主要方法列表
方法 | 功能描述 |
---|---|
CloseLink | 终止正在进行的DDE对话 |
ExecuteMacro | 将宏命令字符串发送到DDE服务器应用程序 |
ExecuteMacroLines | 将一些宏命令的列表发送到DDE服务器应用程序 |
OpenLink | 启动新的DDE对话 |
PasteLink | 打开与当前Clipboard对象的DDE对话 |
PokeData | 将数据发送到DDE服务器应用程序 |
PokeDataLines | 将多行数据发送到DDE服务器应用程序 |
RequestData | 从DDE服务器请求数据 |
SetLink | 指定DDE对话的服务和主题,并尝试在ConnectMode为ddeAutomatic时打开链接 |
StartAdvise | 为与当前DDE对话关联的所有TDdeClientItem启动建议循环 |
# 7. TDdeClientItem组件
将TDdeClientItem与TDdeClientConv一起使用可作为DDE客户端。DDE客户端项指定DDE服务器支持的单个项。单个TDdeClientConv对象可以与多个客户端项相关联。如果DDE客户端会话已与DDE服务器建立链接,则服务器将自动持续更新所有客户端项目,直到会话终止。
# 7.1. 属性
- TDdeClientItem组件主要属性
属性 | 功能说明 |
---|---|
DdeConv | 指定要与DDE客户端项关联的DDE客户端对话 |
DdeItem | 指定DDE对话的项目 |
Lines | 包含要在DDE对话中交换的文本数据 |
Text | 包含要在DDE对话中交换的文本数据 |
# 7.2. 事件
- TDdeClientItem组件主要事件列表
事件 | 何时触发 |
---|---|
OnChange | 当在DDE服务器更新Lines属性后,将触发该事件 |
# 8. TDdeServerConv组件
使用TDdeServerConv与DDE客户端应用程序建立DDE主题。DDE主题下的各个项目由TDdeServerItem对象表示。通过设置ServerConv属性,这些项可链接到DDE服务器对话。
使用TDdeServerConv组件是可选的。如果没有TDdeServerConv对象,客户端仍然可以进入DDE对话并直接从TDdeServerItem对象接收更新。但是,需要DDE服务器对话来处 理DDE客户端可能发送的任何宏。
DDE服务器对话的Name属性提供DDE客户端用于建立DDE服务器对话链接的主题。与DDE服务器对话无关的DDE服务器项使用窗体的Caption属性作为主题名称。在单个窗体中建立多个DDE主题时,或者在运行时窗体的标题可能不唯一或不变时,请使用TDdeServerConv对象。
# 8.1. 事件
- TDdeServerConv组件事件列表
事件 | 何时触发 |
---|---|
OnClose | 在DDE客户端终止DDE对话时触发该事件 |
OnExecuteMarco | 当DDE客户端将宏发送到DDE服务器对话时触发该事件 |
OnOpen | 在建立到客户端的DDE链接后触发该事件 |
# 8.2. 方法
- TDdeServerConv组件主要方法列表
方法 | 功能描述 |
---|---|
ExecuteMarco | 响应DDE客户端发送的宏命令 |
# 9. TDdeServerItem 组件
使用TDdeServerItem,或者使用TDdeServerConv对象,以使应用程序能够用作DDE服务器。DDE客户端通过引用Name属性链接到单个DDE服务器项。一旦建立了到DDE客户端的链接,DDE服务器项就可以将客户端更新为项数据中的更改,或者接收DDE客户端戳到该项的数据。
# 9.1. 属性
- TDdeServerItem组件主要属性
属性 | 功能说明 |
---|---|
Fmt | 表示DDE客户端项用于将数据传递到DDE客户端的剪贴板格式 |
Lines | 包含要在DDE对话中交换的数据 |
ServerConv | 指定要与DDE服务器项关联的DDE服务器对话 |
Text | 包含要在DDE对话中交换的文本数据。 |
# 9.2. 事件
- TDdeServerItem组件事件列表
事件 | 何时触发 |
---|---|
OnChange | 在将行更改发送到DDE客户端之前更改Lines属性时,触发该事件 |
OnPokeData | 在DDE客户端更改Lines属性的值后,触发该事件 |
# 9.3. 方法
- TDdeServerItem组件主要方法列表
方法 | 功能描述 |
---|---|
Change | 生成OnChange事件 |
CopyToClipboard | 将Text或Lines属性中指定的数据与DDE链接信息一起复制到Windows剪贴板 |
PokeData | 处理DDE客户端已传入DDE服务器项的数据 |
# 10. TBluetooth 组件
TBluetooth组件用于发起蓝牙连接,并可与其他蓝牙通信设备进行数据交互。可参考蓝牙控制LED灯以及蓝牙读取温湿度。
# 10.1. 方法(Methods)
- TBluetooth组件主要方法
方法 | 功能说明 |
---|---|
Init | 初始化蓝牙控件 |
DiscoverDevices | 发现蓝牙设备 |
PairedDevices | 已配置蓝牙设备 |
Services | 获取蓝牙服务 |
Pair | 配对蓝牙设备 |
UnPair | 取消蓝牙配对 |
CreateServerSocket | 创建服务通道 |
CloseServerSocket | 关闭服务通道 |
FreeClientSocket | 释放服务通道 |
SendData | 发送蓝牙信息 |
ReadData | 接收蓝牙信息 |
ManagerConnected | 获取蓝牙管理器状态 |
# 10.2. 事件(Events)
- TBluetooth 组件主要事件
事件 | 何时触发 |
---|---|
OnReceiveData | 当接收到信息时触发 |
# 10.2.1. OnReceiveData
接收到蓝牙通讯数据后反馈。
//信息反馈
Procedure Bluetooth1OnReceiverData(Sender: TObject;ServiceName,ServiceUUID,ReceiveData:string);
Begin
Showmessage(ReceiveData)
End;
2
3
4
5