自定程序
  # Smart 自定程序
# 1. BaseFrom基类程序
基类程序在脚本中调用时,必须以FThis.开头。
# 1.1. AddDataSet
procedure AddDataSet(QDataSet: TRFDataSet);
 说明: 将数据集加入到窗体DataSetList数据集合
- DoFirst程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QDataSet | 数据集对象 | 
- 示例
 
Begin
    //将数据集加入到DataSetList集合中
	FThis.AddDataSet(FThis.DataSet1);
end;
 2
3
4
# 1.2. DataSetMoveRowDown
procedure DataSetMoveRowDown(QDataSet: TRFDataSet; QSort: string =
    'FEntryID');
 2
说明: 数据集记录下移
- DataSetMoveRowDown程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QDataSet | 指定一个需要操作的数据集对象 | 
| QSort | 排序字段名称,默认FEntryID | 
- 示例
 
Begin
    //下移记录
    FThis.DataSetMoveRowDown(FThis.dts1);
End;
 2
3
4
# 1.3. DataSetMoveRowUp
procedure DataSetMoveRowUp(QDataSet: TRFDataSet; QSort: string =
    'FEntryID');
 2
说明: 数据集记录上移
- DataSetMoveRowUp程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QDataSet | 指定一个需要操作的数据集对象 | 
| QSort | 排序字段名称,默认FEntryID | 
- 示例
 
Begin
    //上移记录
    FThis.DataSetMoveRowUp(FThis.dts1);
End;
 2
3
4
# 1.4. DataSetRowCopy
procedure DataSetRowCopy(QDataSet: TRFDataSet);
 说明: 复制一条数据集记录
- DataSetRowCopy程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QDataSet | 指定一个需要操作的数据集对象 | 
- 示例
 
Begin
    //复制一条记录
    FThis.DataSetRowCopy (FThis.dts1);
End;
 2
3
4
# 1.5. DataSetSort
procedure DataSetSort(QDataSet: TRFDataSet; QSort: string = 'FEntryID');
 说明: 数据集排序
- DataSetSort程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QDataSet | 指定一个需要操作的数据集对象 | 
| QSort | 数据集排序字段名称,默认是FEntryID | 
- 示例
 
begin
    //排序数据集
    FThis.DataSetSort(FThis.dts1);
end;
 2
3
4
# 1.6. OpenModbusThread
Procedure OpenModbusThread;
 说明: 激活窗体上所有Modbus线程
- 示例
 
Begin
	FThis.OpenModbusThread;
end;
 2
3
# 1.7. PostData
procedure TBaseForm.PostData(QDataSet: TRFDataSet);
 说明: 保存数据
- DoFirst程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QDataSet | 数据集对象 | 
- 示例
 
Begin
    //提交数据集数据
    FThis.PostData (FThis.DataSet1);
end;
 2
3
4
# 1.8. PostData
procedure PostData(QDataSet: TRFDataSet);
 说明: 提交数据集
- PostData程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QDataSet | 指定一个需要Post的数据集对象 | 
- 示例
 
begin
    //dts0数据集Post
    FThis.PostData(FThis.dts0);
    //也可以这样写
    if FThis.dts0.State in dsEditModes then
    FThis.dts0.Post;
end;
 2
3
4
5
6
7
# 1.9. SetBookMark
procedure SetBookMark(QDataSet: TRFDataSet; QBK: Integer);
 说明: 设置数据集书签
- SetBookMark程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QDataSet | 指定一个需要设置书签的数据集 | 
| QBK | 书签操作类型 0,1,2 | 
- 示例
 
Begin
    //获取数据集当前书签记录位置
    FTHis.SetBookMark(FThis.dts0,1);
    代码片段…
    //回到原书签记录位置
    FTHis.SetBookMark(FThis.dts0,2);
    代码片段…
end;
 2
3
4
5
6
7
8
# 1.10. SetDataParamValue
procedure SetDataParamValue(QDataSet: TRFDataSet; QIndex: Integer; QVar:
    Variant);
 2
说明: 数据集参数赋值
- SetDataParamValue程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QDataSet | 指定一个需要操作的数据集对象 | 
| QIndex | 数据集参数索引号 | 
| QVar | 参数值 | 
- 示例
 
begin
    //数据集参数赋值
    FThis.SetDataParamValue(FThis.dts1,0, '123');
end;
 2
3
4
# 1.11. StopModbusThread
Procedure StopModbusThread;
 说明: 关闭窗体上所有Modbus线程
- 示例
 
Begin
	FThis.StopModbusThread;
end;
 2
3
# 1.12. TransSQLToDataSet
procedure TransSQLToDataSet(QSQLs: UnicodeString; QDataSets: TRFDataSet;
    bTrans: Boolean = true);
 2
说明: SQL通用数据传递
- TransSQLToDataSet程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QSQLs | SQL字符串,用来获取源数据 | 
| QDataSets | 目标数据集,需要接收数据的数据集对象 | 
| bTrans | 当目标字段不为空时,是否进行覆盖 | 
- 示例
 
Var
    vSQL:string;
Begin
    vSQL:= 'select * from Basic_Process Order By FEntryID';
    //将SQL语句执行结果传递到数据集dts1上
    FThis.TransSQLToDataSet(vSQL,FThis.dts1);
End;
 2
3
4
5
6
7
# 2. DM程序
DM程序在脚本中调用时,必须以DM.开头
# 2.1. CreateDataSet
procedure CreateDataSet(var QDataSet: TRFDataSet; AOwner: TComponent = nil);
 说明: 创建数据集对象
- 程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QDataSet | 数据集变量 | 
| AOwner | 所有者 | 
- 示例
 
Var
    vDataSet:TRFDataSet;
begin
    //创建vDataSet对象
    DM.CreateDataSet(vDataSet,nil);
    //下面创建方法与CreateDataSet效果一样
    vDataSet:= TRFDataSet.Create(nil);
    vDataSet.Connection := DM.SQDBConnection;
end;
 2
3
4
5
6
7
8
9
# 2.2. CreateTableToSqlScript
procedure CreateTableToSqlScript(ATable, AKeyFiled, ACurrID: string;
    AFileName: string = '');
 2
说明: 将表数据导出
- CreateTableToSqlScript程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| ATable | 数据表名 | 
| AKeyFiled | 主键字段名 | 
| ACurrID | 主键值 | 
| AFileName | 导出文件名称 | 
- 示例
 
begin
    //导出Basic_Item表的全部数据
    DM.CreateTableToSqlScript('Basic_Item','','');
    //导出Basic_Item表主键值为123的数据
    DM.CreateTableToSqlScript('Basic_Item','FInterID','123','');
    //导出Basic_Item表的全部数据,并指定文件名称
    DM.CreateTableToSqlScript('Basic_Item','','Data_Basic_Item');
end;
 2
3
4
5
6
7
8
# 2.3. FillComboBox
procedure FillComboBox(QControl: TComboBox; QSQL: string);
 2
说明: 填充TComboBox下拉控件
- FillComboBox程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QControl | 指定一个需要填充数据的TComboBox对象 | 
| QSQL | 指定一个SQL字符串,用来获取填充数据 | 
# 2.4. FillDBComboBox
procedure FillDBComboBox(QControl: TComboBox; QSQL: string);
 说明: 填充TDBComboBox下拉控件
- FillDBComboBox程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QControl | 指定一个需要填充数据的TcxDBComboBox对象 | 
| QSQL | 指定一个SQL字符串,用来获取填充数据 | 
- 示例
 
Var
    vSQL:String;
begin
    vSQL:= 'Select FWhsName as FName from Basic_Whs';
    DM.FillDBComboBox(FThis.ComboBox1, vSQL);
end;
 2
3
4
5
6
# 2.5. SetData
Procedure SetData(QSourceDataSet, QTargetDataSet: TRFDataSet);
 说明: 数据集对拷
- SetData程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QSourceDataSet | 源数据集 | 
| QTargetDataSet | 目标数据集 | 
- 示例
 
Var
    vTargetDataSet: TRFDataSet;
begin
    //将dts0数据集数据拷贝给vTargetDataSet
    vTargetDataSet:= TRFDataSet.Create(nil);
    DBFun.SetData(FThis.dts0, vTargetDataSet);
end;
 2
3
4
5
6
7
# 2.6. SetDataParamValue
procedure SetDataParamValue(QDataSet: TRFDataSet; QIndex: Integer; QVar:
    Variant);
 2
说明: 数据集参数赋值
- SetDataParamValue程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QDataSet | 指定一个需要操作的数据集对象 | 
| QIndex | 数据集参数索引号 | 
| QVar | 参数值 | 
- 示例
 
begin
    //数据集参数赋值
    DM.SetDataParamValue(FThis.dts1,0, '123');
end;
 2
3
4
# 2.7. SetPictureFileToFieldBlob
Procedure SetPictureFileToFieldBlob(QFileName: string; QFiled: TField);
 说明: 将图片保存到数据字段
- SetPictureFileToFieldBlob程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QFileName | 图片名称,来自文件 | 
| QFiled | 数据集字段 | 
- 示例
 
begin
    //将c:\\Temp.jpg,保存到数据字段 FPicture中
    DM.SetPictureFileToFieldBlob('c:\\Temp.jpg',FThis.dts0.FieldByName('FPicture'));
end;
 2
3
4
# 3. PaxFunc程序
PaxFunc注册程序在脚本中调用时,必须以PaxFunc.开头。
# 3.1. AdvancedInfo
Procedure AdvancedInfo(AMapView: TAMapView);
 说明: 加载高德地图信息
- AdvancedInfo程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| AMapView | 高德地图控件 | 
- 示例
 
Begin
    paxfunc.AdvancedInfo(FThis.AMapView1);
    FThis.AMapView1.LoadMap;
End;
 2
3
4
# 3.2. Base64Put
procedure Base64Put(Base64Str,FileName:String);
 说明: base64字符串保存为文件
- Base64Put程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| Base64Str | 指定一个Base64编码字符串。 | 
| FileName | 需要保存的文件路径。 | 
# 3.3. ChangeCamera
Procedure ChangeCamera(QcomboBox: TcomboBox; QRVCamera: TRVCamera);
 说明: 选择视频列表
- ChangeCamera程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QcomboBox | 视频下拉列表控件 | 
| QRVCamera | 摄像头控件 | 
- 示例
 
Begin
    PaxFunc.ChangeCamera(FThis.cmbCamera,FThis.RVCamera1);
End;
 2
3
# 3.4. CloseCamera
Procedure CloseCamera(QRVCamera: TRVCamera);
 说明: 关闭摄像头
- CloseCamera程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QRVCamera | 摄像头控件 | 
- 示例
 
Begin
    PaxFunc.CloseCamera(FThis.RVCamera1);
End;
 2
3
# 3.5. GetMarkerAddress
Procedure GetMarkerAddress(AMapView: TVCLCCAMapView; ALocation: TCCLngLat;
    AFrom:TBaseForm);
 2
说明: 获取地图标记地址
- GetMarkerAddress程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| AMapView | 高德地图控件 | 
| ALocation | 经纬度对象 | 
| AFrom | 窗体对象 | 
- 示例
 
procedure TMyHandler.VCLCCAMAPVIEW1MAPCLICKEVENT(ASender: TObject; APos:TCCLngLat);
var
    vTCCAMapMarker:TCCAMapMarker;
begin
    //点击地图时的经纬坐标
    FPos:=APos;
    //显示经纬度到标签上
    FThis.lbJW.Caption := FloatToStr(APos.Longitude)+','+ FloatToStr(APos.Latitude);
    FThis.TagString := '';
    //获取经纬度的地址
    paxfunc.GetMarkerAddress(FThis.VCLCCAMapView1,APos,FThis);
    //清除地图标记
    FThis.VCLCCAMapView1.Markers.Clear;
    //增加一个标记到地图上
    vTCCAMapMarker := paxfunc.AddMarker(FThis.VCLCCAMapView1);
    if FThis.VCLCCAMapView1.MapLoadCompleted then
    begin
        with vTCCAMapMarker do
        begin
            //标记地图信息
            Title := FThis.TagString;
            Position.Longitude := APos.Longitude;
            Position.Latitude := APos.Latitude;
            // 设置了Content属性Icon属性失效。要自定义丰富的标记就用Content属性吧
            Content:='<div>';
            Content:=Content+'<imagesrc="http://webapi.amap.com/theme/v1.3/markers/n/mark_r.png"></image>';
            //Content:=Content+'<span style="white-space: nowrap;border:1px solid#fff;background-color:#ff0000;font-size: 12px;color:white; padding: 4px10px;">'+FThis.TagString+'</span>';
            // 图片19 x 31 pixels
            Content:=Content+'</div>'; // 必须有根div元素 不然缩放时图标位置不会更新
            // 绘制
            draw;
        end;
    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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 3.6. keybdEvent
Procedure keybdEvent(bVk, bScan: Byte; dwFlags: Cardinal;dwExtraInfo:
    Cardinal);
 2
说明: 模拟键盘操作
- keybdEvent程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| bVk | 虚拟键值,如回车键为vk_return, tab键为vk_tab。 | 
| bScan | 扫描码,一般不用设置,用0代替就行。 | 
| dwFlags | 选项标志,如果为keydown则置0即可,如果为keyup则设成“KEYEVENTF_KEYUP”。 | 
| dwExtraInfo | 额外信息,一般不用设置,用0代替就行。 | 
- 示例
 
Begin
   //例子1:模拟按下'A'键
  PaxFunc.keybdEvent (65,0,0,0);
  PaxFunc.keybdEvent (65,0,KEYEVENTF_KEYUP,0);
   //例子2:模拟按下'ALT+F4'键
  PaxFunc.keybdEvent (18,0,0,0);
  PaxFunc.keybdEvent (115,0,0,0);
  PaxFunc.keybdEvent (115,0,KEYEVENTF_KEYUP,0);
  PaxFunc.keybdEvent (18,0,KEYEVENTF_KEYUP,0);
End;
 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 3.7. LoadCamerasList
Procedure LoadCamerasList(QCamerasList,QCameraSourceList: TStrings);
 说明: 加载视频列表
- LoadCamerasList程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QCamerasList | 摄像头列表 | 
| QCameraSourceList | 摄像头资源列表 | 
- 示例
 
Begin
End;
 2
3
# 3.8. Msg
Procedure Msg(aMsg: string; aTitle: string = ''; iTime: Integer = 2; bTime:
    Boolean = true);
 2
**说明:**消息对话框
- 程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| aMsg | 消息内容 | 
| aTitle | 消息对话框标题 | 
| iTime | 自动关闭时间(秒) | 
| bTime | 是否启用自动关闭定时器 | 
- 示例
 
Begin
    PaxFunc.Msg('你好!这是一个消息对话框!','提示',2,true);
End;
 2
3
- 运行结果 
 
# 3.9. OpenAPP
procedure OpenAPP(QFileName:string;QParam:string='';QShowCmd:integer=2);
 说明: 打开第三方程序
- OpenAPP程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QFileName | 程序名称带路径 | 
| QParam | 传输进去的参数 | 
| QShowCmd | 
- 示例
 
Begin
    //打开Smart
    PaxFunc.OpenAPP('Smart.exe','',2);
End;
 2
3
4
# 3.10. OpenCamera
Procedure OpenCamera(QRVCamera: TRVCamera);
 说明: ChangeCamera打开摄像头
- OpenCamera程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QRVCamera | 摄像头控件 | 
- 示例
 
Begin
    paxfunc.OpenForm('WebCamera','WebCamera');
End;
 2
3
# 3.11. OpenPlugProc
procedure OpenPlugProc(const PlugName,ProcName: string);
 说明: 调用插件功能
- 程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| PlugName | 插件名称 | 
| ProcName | 插件中注册的方法 | 
- 示例
 
Begin
    //调用插件Test中的ShowFrom方法
    PaxFunc.OpenPlugProc('Test','ShowFrom');
End;
 2
3
4
# 3.12. SetCamView
Procedure SetCamView(QCamView: TRVCamView; QRVCamera: TRVCamera);
 说明:绑定摄像头到视频显示控件
SetCamView程序语法中各部分说明
| 部分 | 说明 | 
|---|---|
| QCamView | 视频显示控件 | 
| QRVCamera | 摄像头控件 | 
示例
Begin
    PaxFunc.SetCamView(FThis.RVCamView, FThis.RVCamera1);
End;
 2
3
# 3.13. SetFocus
Procedure SetFocus(QControl: TWinControl);
 **说明:**设置控件焦点
- SetFocus程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QControl | 需要设置焦点的控件 | 
- 示例
 
Begin
    PaxFunc.SetFocus(FThis.Edit1);
End;
 2
3
# 3.14. SetPropValue
Procedure SetPropValue(QControl:TComponent; QControlProp: string; QValue:
    Variant);
 2
说明: 设置控件属性
- SetPropValue程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QControl | 控件对象 | 
| QControlProp | 控件属性 | 
| QValue | 属性值 | 
- 示例
 
Begin
    //将控件FThis.dbdts0FCustCode的Enable设置成Fasle
    PaxFunc.SetPropValue(FThis.dbdts0FCustCode, 'Enable',False);
End;
 2
3
4
# 3.15. ShowReport
Procedure ShowReport(QModuleID: string; QBaseForm: TBaseForm; QCurrID:
    string = ''; QMXID: string = '';QShowPrintDlg: Boolean = true; QPreview:
    Boolean = true);
 2
3
说明: 打开报表设计窗体
- ShowReport程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QModuleID | 模块ID | 
| QBaseForm | 窗体对象 | 
| QCurrID | 主键值 | 
| QMXID | 报表ID | 
| QShowPrintDlg | 是否打开打印对话框 | 
| QPreview | 是否预览 | 
- 示例
 
begin
    //打开报表配置
    PaxFunc.ShowReport('ReportPrint',FThis,'','',false,false);
    //预览报表
    PaxFunc.ShowReport('ReportPrint',FThis,'','EB8BA008-4730-4BAC-AD5F-2D469C2FB732',false,True);
end;
 2
3
4
5
6
# 3.16. Speak
procedure Speak(QSpeak: string);
 说明: 将字符串转成语音
- 程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QSpeak | 需要转换成语音的内容 | 
- 示例
 
Begin
    PaxFunc.Speak('我是中国人,I am Chinese!');
End;
 2
3
# 3.17. WriteErrorLog
procedure WriteErrorLog(AErrorText: string);
 说明: 写入错误日志
- WriteErrorLog程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| AErrorText | 错误日志内容 | 
- 示例
 
Begin
    //指定日志文件增加日志内容
    PaxFunc. WriteErrorLog('数据读取失败失败!');
End;
 2
3
4
# 3.18. WriteLog
procedure WriteLog(aFileName: string; ALog: string);
 说明: 指定文件写入日志
- WriteLog程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| aFileName | 日志文件名称 | 
| ALog | 日志内容 | 
- 示例
 
Begin
    //指定日志文件增加日志内容
    PaxFunc.WriteLog ('2019072301.txt', '测试');
End;
 2
3
4
# 3.19. LoadStructureJSONArray
procedure LoadStructureJSONArray(ADataSet:TDataSet;const AJSONArray: TJSONArray; const AOwns: Boolean = True);
 说明: 将数据集的数据表结构从JSONArrary中加载。
- LoadStructureJSONArray程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| ADataSet | 设置要加载的数据集 | 
| AJSONArray | 设置源JSON队列 | 
| AOwns | 是否占用 | 
# 3.20. LoadStructureJSONString
procedure LoadStructureJSONString(ADataSet:TDataSet;const AJSONString: string); 
 说明: 将数据集的数据表结构从JSON格式的字符串中读取加载。
- LoadStructureJSONString程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| ADataSet | 设置要加载的数据集 | 
| AJSONString | 设置源JSON字符串 | 
# 3.21. LoadFromJSONObject
procedure LoadFromJSONObject(ADataSet:TDataSet;const AJSONObject: TJSONObject; const AOwns: Boolean = True)
 说明: 数据集从JSON对象中获取加载单条记录。
- LoadFromJSONObject程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| ADataSet | 设置要加载的数据集 | 
| AJSONObject | 设置源JSON对象 | 
| AOwns | 是否占用 | 
# 3.22. LoadFromJSONArray
procedure LoadFromJSONArray(ADataSet:TDataSet;const AJSONArray: TJSONArray; const AOwns: Boolean = True);
 说明: 数据集从JSON对象序列中获取加载多条记录。
- LoadFromJSONArray程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| ADataSet | 设置要加载的数据集 | 
| AJSONArray | 设置源JSON队列 | 
| AOwns | 是否占用 | 
# 3.23. LoadFromJSONString
procedure LoadFromJSONString(ADataSet:TDataSet;const AJSONString: string);
 说明: 数据集从JSON对象的字符串中获取加载数据记录。
- LoadFromJSONString程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| ADataSet | 设置要加载的数据集 | 
| AJSONString | 设置源JSON字符串 | 
# 3.24. MergeFromJSONObject
procedure MergeFromJSONObject(ADataSet:TDataSet;const AJSONObject: TJSONObject; const AOwns: Boolean = True);
 说明: 数据集从JSON对象中读取单条数据记录并合并至数据集中。
- MergeFromJSONObject程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| ADataSet | 设置要加载的数据集 | 
| AJSONObject | 设置源JSON对象 | 
| AOwns | 是否占用 | 
# 3.25. MergeFromJSONString
procedure MergeFromJSONString(ADataSet:TDataSet;const AJSONString: string);
 说明: 数据集从JSON对象字符串中读取数据记录并合并至数据集中。
- MergeFromJSONString程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| ADataSet | 设置要加载的数据集 | 
| AJSONString | 设置源JSON字符串 | 
# 4. IOT程序
IOT程序在脚本中调用时,必须以IOT.开头。
# 4.1. ComAddList
procedure ComAddList(ATComboBox: TComboBox; AComPort: TComPort);
 - ComAddList程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| ATComboBox | 下拉控件用来显示串口列表 | 
| AComPort | 串口通讯控件 | 
- 示例
 
Begin
    //将设备所有串口端口加入到下拉列表控件中
    IOT.ComAddList(FThis.ComPort1, FThis.ComboBox1);
End;
 2
3
4
# 4.2. ComClose
procedure ComClose(AComPort: TComPort);
 说明: 关闭串口
- 示例
 
Begin
    //关闭串口
    IOT.ComClose(FThis.ComPort1);
End;
 2
3
4
# 4.3. ComConfig
procedure ComConfig(AComPort: TComPort);
 说明: 调用串口配置窗体
- ComConfig程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| AComPort | 串口通讯控件 | 
- 示例
 
Begin
    //打开串口配置窗体
    IOT.ComConfig(FThis.ComPort1);
End;
 2
3
4
# 4.4. ComOpen
procedure ComOpen(AComPort: TComPort);
 2
说明: 打开串口
- ComOpen程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| AComPort | 串口通讯控件 | 
- 示例
 
Begin
    //打开串口
    IOT.ComOpen(FThis.ComPort1);
End;
 2
3
4
# 4.5. ComWriteAnsiChar
procedure ComWriteAnsiChar(AComPort:TComPort;const Value: AnsiChar);
 说明: 向串口发送AnsiChar数据
ComWriteAnsiChar程序语法中各部分说明
示例
Begin
    IOT.ComWriteAnsiChar(FThis.ComPort1, 'A');
End;
 2
3
# 4.6. ComWriteAnsiLine
procedure ComWriteAnsiLine(AComPort:TComPort;const Value: AnsiString);
 说明: 向串口发送AnsiString数据
ComWriteAnsiLine程序语法中各部分说明
示例
Begin
    // FThis.Memo1.Lines.Text 内容
    //begin
    SIZE 40 mm,30 mm
    CLS
    TEXT 50,30,"TSS24.BF2",0,1,1,"商品清单"
    TEXT 50,45,"4",0,1,1,"--------------------"
    TEXT 50,60,"TSS24.BF2",0,1,1,"红塔山 1 15 15 "
    TEXT 50,90,"TSS24.BF2",0,1,1,"娃哈哈 1 15 15 "
    TEXT 50,120,"TSS24.BF2",0,1,1,"牛肉干 1 15 15 "
    TEXT 50,150,"TSS24.BF2",0,1,1,"红牛 1 15 15 "
    TEXT 50,170,"4",0,1,1,"--------------------"
    TEXT 50,190,"TSS24.BF2",0,1,1,"合计 1 15 15 "
    QRCODE 50,20,L,4,A,0,"www.gainscha.com"
    PRINT 1
    EOP
    //end
    IOT.ComWriteAnsiLine(FThis.ComPort1,FThis.Memo1.Lines.Text);
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
# 4.7. ComWriteChar
procedure ComWriteChar(AComPort:TComPort;const Value: Char);
 说明: 向串口发送Char数据
ComWriteChar程序语法中各部分说明
示例
Begin
    IOT.ComWriteChar(FThis.ComPort1, 'T');
End;
 2
3
# 4.8. ComWriteString
procedure ComWriteString(AComPort:TComPort;const Value: String);
 说明: 向串口发送String数据
ComWriteString程序语法中各部分说明
示例
Begin
    IOT.ComWriteString (FThis.ComPort1, 'AABBCC');
End;
 2
3
# 4.9. MQTTWrite
procedure MQTTWrite(QMQTTChannel:TMQTTChannel;QItemIndex:Integer; QTopic,
    QPayload: string);
 2
说明: 向MQTT发送数据
- MQTTWrite程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QMQTTChannel | MQTT集合对象 | 
| QItemIndex | MQTTItem索引 | 
| QTopic | 主题 | 
| QPayload | 内容 | 
- 示例
 
Begin
    IOT. MQTTWrite(FThis. MQTTChannel1,0, 'T','T');
End;
 2
3
# 4.10. OPCWrite
Procedure OPCWrite(QOPCServer:TdOPCDAClient;QGroupIndex,QItemIndex:Integer;QValue:Variant);
 说明: 向OPC Item发送数据
- OPCWrite程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QOPCServer | OPCServer | 
| QGroupIndex | OPC分组ID | 
| QItemIndex | OPC Item 索引 | 
| QValue | 发送的数据 | 
- 示例
 
Begin
    IOT.OPCWrite (FThis.dOPCDAClient1,0,0,1);
End;
 2
3
# 4.11. RTUWrite
procedure RTUWrite(QItem:TModbusRTUWriteChannel;QIndex:Integer);
 说明: 执行Modbus RTU写数据操作
- RTUWrite程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QItem | ModbusRTU集合 | 
| QIndex | ModbusRTU Item索引 | 
- 示例
 
Begin
    FThis.ModbusRTUWriteChannel1.ModbusList[0].DataValue := 1;
    IOT.RTUWrite(FThis.ModbusRTUWriteChannel1,0);
End;
 2
3
4
# 4.12. TCPWrite
procedure TCPWrite(QItem:TModbusTCPWriteChannel;QIndex:Integer);
 说明: 执行Modbus TCP写数据操作
- TCPWrite程序语法中各部分说明
 
| 部分 | 说明 | 
|---|---|
| QItem | ModbusTCP集合 | 
| QIndex | ModbusTCP Item索引 | 
- 示例
 
Begin
    FThis.ModbusTCPWriteChannel1.ModbusList[0].DataValue := 1;
    IOT.TCPWrite(FThis.ModbusTCPWriteChannel1,0);
End;
 2
3
4