爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • Smart帮助主页
  • 学习手册

    • 基本入门

    • 功能介绍

    • 控件说明

    • 功能用法

    • 专用模板

    • 开发流程

    • 函数程序

      • 系统函数
      • 系统程序
      • 自定函数
        • 1. DM类函数
          • 1.1. CheckFieldEmpty
          • 1.2. DataSetIsEdit
          • 1.3. ExecProcedureFast
          • 1.4. ExecProcedureRStr
          • 1.5. OpenData
          • 1.6. OpenDatas
          • 1.7. QueryValue
          • 1.8. SaveData
          • 1.9. SaveDatas
          • 1.10. GetBillNo
          • 1.11. GetGUID
          • 1.12. GetNodeID
          • 1.13. GetNewID
          • 1.14. GetServerDate
          • 1.15. GetServerDateTime
          • 1.16. GetDBConnection
        • 2. PaxFunc类函数
          • 2.1. AddMarker
          • 2.2. Base64Get
          • 2.3. BIG2cn
          • 2.4. Cn2Big
          • 2.5. CreateStringStream
          • 2.6. DigitToEn
          • 2.7. GetBarcode
          • 2.8. GetChinaMoney
          • 2.9. GetControlsImage
          • 2.10. GetFirstDayofMonth
          • 2.11. GetHostIP
          • 2.12. GetHostName
          • 2.13. GetLastDayofMonth
          • 2.14. GetMacAddress
          • 2.15. GetPropValue
          • 2.16. GetNumber
          • 2.17. GetJSONObject
          • 2.18. GetJSONArray
          • 2.19. GetJSONString
          • 2.20. GetJSONNumber
          • 2.21. GetJSONInteger
          • 2.22. GetJSONFloat
          • 2.23. GetJSONBool
          • 2.24. GetJSONValue
          • 2.25. JSONArray_AddJSONObject
          • 2.26. JSONObject_AddJSONArray
          • 2.27. JSONParse
          • 2.28. ParseJSONValue
          • 2.29. InputNumber
          • 2.30. InputNumberR
          • 2.31. InputNumberStr
          • 2.32. MACToStr
          • 2.33. NetHttpDelete
          • 2.34. NetHttpGet
          • 2.35. NetHttpPut
          • 2.36. NetHttpPost
          • 2.37. NextMonth
          • 2.38. OpenForm
          • 2.39. ParseJSONObject
          • 2.40. RoundToCH
          • 2.41. SendArticleMessage
          • 2.42. SendCustomMessage
          • 2.43. SendEmail
          • 2.44. SendTemplateMessage
          • 2.45. SendWechatMsg
          • 2.46. ShowHandWrite
          • 2.47. StreamToBase64
          • 2.48. UrlDecode
          • 2.49. UrlEncode
          • 2.50. YesNoMsg
          • 2.51. ToJSONObjectString
          • 2.52. ToJSONArrayString
          • 2.53. ToJSONObject
          • 2.54. ToJSONArray
          • 2.55. SaveStructure
          • 2.56. ValidateJSONObject
          • 2.57. ValidateJSONString
        • 3. IOT类函数
          • 3.1. BTACreateServerSocket
          • 3.2. BTDCreateClientSocket
          • 3.3. BTMConnectionState
          • 3.4. BTMCurrent
          • 3.5. BTSKSendData
          • 3.6. BTSKReadData
          • 3.7. BTSKReceiveData
          • 3.8. BTSLGetServicesCount
          • 3.9. BTSLServicesName
          • 3.10. BTSLServicesUUID
          • 3.11. BTSSAccept
          • 3.12. ComReadAnsiString
          • 3.13. ComReadString
          • 3.14. GetBluetoothDevice
          • 3.15. IdTCPClientSendCmd
          • 3.16. ModbusTCPReadCoils
          • 3.17. ModbusTCPReadHoldingRegisters
          • 3.18. ModbusTCPWriteCoils
          • 3.19. ModbusTCPWriteRegisters
        • 4. BaseFrom基类函数
          • 4.1. GetData
      • 自定程序
  • 开发手册

目录

自定函数

# Smart 自定函数

# 1. DM类函数


# 1.1. CheckFieldEmpty

function CheckFieldEmpty(QField: TField): Boolean;
1

说明: 判断字段是否为空。 返回值: 布尔Boolean类型。

  • CheckFieldEmpty函数语法中各部分说明
部分 说明
QDataSet 数据集对象
  • 示例
Begin
	If DM.CheckFieldEmpty (FThis.dts0.FieldByName('FBiller')) then
Begin
	Showmessage('数据集字段FBiller 内容为空。');
End;
end;
1
2
3
4
5
6

# 1.2. DataSetIsEdit

function DataSetIsEdit(const QDataSet: TRFDataSet): Boolean;
1

说明: 判断数据集是否处理编辑状态。 返回值: 布尔Boolean类型。

  • DataSetIsEdit函数语法中各部分说明
部分 说明
QDataSet 数据集对象
  • 示例
Begin
	If DM.DataSetIsEdit(FThis.dts0) then
Begin
	Showmessage('数据集dts0处理编辑状态。');
End;
end;
1
2
3
4
5
6

# 1.3. ExecProcedureFast

function ExecProcedureFast(const QstoreName: string; QParams: String): Boolean;
1

说明: 执行存储过程。 返回值: 布尔Boolean类型。

  • ExecProcedureFast函数语法中各部分说明
部分 说明
QstoreName 存储过程名称
QParams 存储过程参数
  • 示例
var
  tempVar: String;
begin
  //通过提示对话框询问用户
  if not PaxFunc.YesNoMsg ('提示','确定删除资料吗?') then Abort();
//存储过程参数赋值
tempVar:='10001,Delete,,';
//执行存储过程
If DM.ExecProcedureFast ('sp_Basic_Item',tempVar) then 
Begin
  Msg('执行成功!')
End;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13

# 1.4. ExecProcedureRStr

function ExecProcedureRStr(const QstoreName: string; QParams: String): string;
1

说明: 执行存储过程。 返回值: 字符串Srtring类型。

  • ExecProcedureRStr函数语法中各部分说明
部分 说明
QstoreName 存储过程名称
QParams 存储过程参数
  • 示例
var
  tempVar:String;
  vResult:String;
begin
  //通过提示对话框询问用户
  if not PaxFunc.YesNoMsg ('提示','确定删除资料吗?') then Abort();
//存储过程参数赋值
tempVar:='10001,Delete,,';
//执行存储过程
vResult := DM.ExecProcedureRStr('sp_Basic_Item',tempVar);
if vResult <> '' then
  begin
    //显示返回值内容
	Showmessage(vResult);
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 1.5. OpenData

function OpenData(QDataSet: TRFDataSet): Boolean;
1

说明: 打开数据集。 返回值: 布尔Boolean类型。

  • OpenData函数语法中各部分说明
部分 说明
QDataSet 数据集对象
  • 示例
var
 vDataSet:TRFDataSet;
begin
    //创建数据集对象
DM.CreateDataSet(vDataSet);
Try
  //对数据集SQL赋值
vDataSet.SQL.Text := 'Select * from Baisc_Whs';
//打开数据集,以下二种方法都可行
//打开方式1
vDataSet.Open;
//打开方式2
DM.OpenData(vDataSet);
If vDataSet.RecordCount > 0 then
Begin
	Showmessage('数据集不为空!');
End;
Finally
  vDataSet.Free;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 1.6. OpenDatas

function OpenDatas(QDataSetList: TList<TRFDataSet>): Boolean;
1

说明: 批量打开数据集。 返回值: 布尔Boolean类型。

  • OpenDatas函数语法中各部分说明
部分 说明
QDataSetList 数据集对象
  • 示例
脚本中暂不支持TList<>对象。
1

# 1.7. QueryValue

function QueryValue(const SQLStr: string; SQLParams: string): Variant;
1

说明: 执行SQL获取返回值。 返回值: 变体Variant类型。

  • QueryValue函数语法中各部分说明
部分 说明
SQLStr SQL语句
SQLParams SQL参数
  • 示例

# 1.8. SaveData

function SaveData(QDataSet: TRFDataSet): Boolean;
1

说明: 数据集提交。 返回值: 布尔Boolean类型。

  • SaveData函数语法中各部分说明
部分 说明
QDataSet 数据集对象
  • 示例
var
    vDataSet: TRFDataSet;
begin
    //创建数据集对象
    DM.CreateDataSet(vDataSet ,nil);
Try
    //对数据集SQL赋值
    vDataSet.SQL.Text := 'Select Top 0 * from Baisc_Whs';
    //打开数据集
    vDataSet.Open;
    //新增一条数据
    vDataSet.Append;
    vDataSet.FieldByName('FInterID').asInteger := DM.GetNodeID;
    vDataSet.FieldByName('FWhsCode').asString := '0101';
    vDataSet.FieldByName('FWhsName').asString := '白坯仓库';
    vDataSet.Post;
    If DM.SaveData(vDataSet) then
    Begin
	    Showmessage('数据提交成功!');
    End;
Finally
    vDataSet.Free;
End;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 1.9. SaveDatas

function SaveDatas(QDataSetList: TList<TRFDataSet>): Boolean;
1

说明: 批量提交数据集。 返回值: 布尔Boolean类型。

  • SaveDatas函数语法中各部分说明
部分 说明
QDataSetList 数据集对象
  • 示例
脚本中暂不支持TList<>对象。
1

# 1.10. GetBillNo

function GetBillNo(QBillID: string; QDate: TDateTime; QPreview: Boolean): string;
1

说明: 获取单据流水号。 返回值: 字符String类型。

  • GetBillNo函数语法中各部分说明
部分 说明
QBillID 单据流水号规则编号
QDate 日期
QPreview 是否预览模式
  • 示例
//数据集dts1新增记录时,生成流水号
// 参数QPreview为true时,流水号生成只是预览模式,还未正式产生
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
   FThis.dts1.Edit;
   FThis.dts1FBatchNo.AsString := DBFUN.GetBillNo ('17020004',Now(),false);
end;
1
2
3
4
5
6
7

# 1.11. GetGUID

function GetGUID: String;
1

说明: 获取唯一ID。 返回值: 字符String类型。

  • 示例
  ShowMessage(DM.GetGUID);
1

# 1.12. GetNodeID

function GetNodeID: Integer;
1

说明: 获取唯一ID **返回值: ** 整型Integer类型。

  • 示例
//数据集dts1新增记录时,生成唯一ID
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
   FThis.dts1.Edit;
FThis.dts1FInterID.AsInteger := DM.GetNodeID;
end;
1
2
3
4
5
6

# 1.13. GetNewID

function GetNewID:String;
1

说明: 获取64位唯一ID 雪花算法 返回值: 字符String类型。

  • 示例
//数据集dts1新增记录时,生成唯一ID
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
   FThis.dts1.Edit;
FThis.dts1FInterID.AsString := DM.GetNewID;
end;
1
2
3
4
5
6

# 1.14. GetServerDate

function GetServerDate:String;
1

说明: 获取服务器日期。 返回值: 字符String类型。

  • 示例
//数据集dts1新增记录时,获取服务器日期
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
FThis.dts1FDate.AsString := DM.GetServerDate;
end;
1
2
3
4
5

# 1.15. GetServerDateTime

function GetServerDateTime:String;
1

说明: 获取服务器日期时间。 返回值: 字符String类型。

  • 示例
//数据集dts1新增记录时,获取服务器日期时间
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
FThis.dts1FCeateDateTime.AsString := DM.GetServerDateTime;
end;
1
2
3
4
5

# 1.16. GetDBConnection

function: GetDBConnection(const ADefName: UnicodeString): TFDConnection; 
1

说明: 获取数据库连接设置。 返回值: TFDConnection 类型,可用于 TFDQuery 的连接。

  • GetDBConnection函数语法中各部分说明
部分 说明
ADefName 数据库连接设置的名称
  • 示例
  FThis.FDQUery1.Connection := DM.GetDBConnection('Smart');
  FThis.FDQuery1.SQL.Text := 'SELECT * FROM Table_Test';
  FThis.FDQuery1.Open;
1
2
3

# 2. PaxFunc类函数

  该章节中的函数需以PaxFunc.开头。

# 2.1. AddMarker

function AddMarker(AMapView:TVCLCCAMapView):TCCAMapMarker;
1

说明: 增加一个地图标记 返回值: 地图标记TCCAMapMarker对象

  • AddMarker函数语法中各部分说明
部分 说明
AMapView 高德地图控件
  • 示例
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+'<image src="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: 4px 10px;">'+FThis.TagString+'</span>';
		// 图片19   x   31   pixels
		Content:=Content+'</div>'; // 必须有根div元素 不然缩放时图标位置不会更新
            // 绘制
		draw;
	  end; 
    end;  
1
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

# 2.2. Base64Get

function  Base64Get(FileName:String):String;
1

说明: 文件转Base64 返回值: String支付类型

  • Base64Get函数语法中各部分说明
部分 说明
FileName 文件路径包含文件名称
  • 示例

# 2.3. BIG2cn

function BIG2cn(bigStr: string): string;
1

说明: 繁体转简体 返回值: 字符string类型

  • BIG2cn函数语法中各部分说明
部分 说明
bigStr 指定繁体内容字符串
  • 示例
var
 s:String;
Begin 
   s := PaxFunc.BIG2cn('我是中國人!我自豪!我驕傲!');
End;
1
2
3
4
5
  • 运行结果: 我是中国人!我自豪!我骄傲!

# 2.4. Cn2Big

function Cn2Big(CnStr: string): string;
1

说明: 简体转繁体 返回值: 字符string类型

  • Cn2Big函数语法中各部分说明
部分 说明
CnStr 指定简体内容字符串
  • 示例
var
 s:String;
Begin 
   s := PaxFunc.Cn2Big('我是中国人!我自豪!我骄傲!');
End;
1
2
3
4
5
  • 运行结果: 我是中國人!我自豪!我驕傲!

# 2.5. CreateStringStream

function CreateStringStream(Encoding:String='UTF8'):TStringStream;
1

说明: 指定编码类型创建字符串流 返回值: TStringStream 字符串流

  • CreateStringStream函数语法中各部分说明
部分 说明
Encoding 编码类型
  • 示例
procedure TMyHandler.IdHTTPServer1CommandGet;
var
  aRequestContent: string;
  reqstream:TStringStream;
  APathInfo :String;
begin
    AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Origin:*');
    AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Headers:*');
    AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Method:*');
    AResponseInfo.ContentType := 'application/json;charset=utf-8'; //解决 AResponseInfo 返回中文乱码问题

  APathInfo := ARequestInfo.Document;
  if ARequestInfo.Command.ToLower = ('POST').ToLower then
  begin
    if APathInfo = '/api/dvrs' then
    begin
      if (ARequestInfo.PostStream <> nil) and (ARequestInfo.PostStream.Size > 0) then
      begin
        ARequestInfo.PostStream.Position := 0;
        //创建UTF8编码的字符串流
        reqstream:=paxfunc.CreateStringStream('UTF8');
        try
         ARequestInfo.PostStream.Position := 0;
         reqstream.LoadFromStream(ARequestInfo.PostStream);
         aRequestContent := reqstream.DataString;
         FThis.Memo1.Lines.Insert(0, FormatDateTime('HH:NN:SS.ZZZ ', now) + '/api/dvrs->' + aRequestContent);
        finally
          reqstream.Free;
        end;

       AResponseInfo.ContentText := aRequestContent; //成功 响应201
       AResponseInfo.WriteContent;
      end;
    end;
  end;
end;
1
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

# 2.6. DigitToEn

function DigitToEn(strDigits: String; intRMB: Boolean): String;
1

说明: 转换成英文金额 返回值: 字符string类型

  • DigitToEn函数语法中各部分说明
部分 说明
strDigits 数字字符串
intRMB 是否RMB
  • 示例
var
 s:String;
Begin 
   s := DigitToEn('10058.5',false);
End;
1
2
3
4
5
  • 运行结果: TEN THOUSAND FIFTY-EIGHT DOLLARS AND FIVE CENTS ONLY

# 2.7. GetBarcode

function GetBarcode(Graphic: TGraphic): string;
1

说明: 获取图片中的条码内容 返回值: string字符串类型

  • GetBarcode函数语法中各部分说明
部分 说明
Graphic 图片中的图形对象
  • 示例
var
 v:string;
begin
  v:=paxfunc.GetBarcode(FThis.image1.Picture.Graphic);
  FThis.memo1.Lines.Add(v);
end;
1
2
3
4
5
6

# 2.8. GetChinaMoney

function GetChinaMoney(small: Variant): string;
1

说明: 将数字金额转成中文大写金额 返回值: 字符string类型

  • GetChinaMoney函数语法中各部分说明
部分 说明
small 数字金额
  • 示例
var
 s:String;
Begin
   s := PaxFunc.GetChinaMoney('10058.56');
End;
1
2
3
4
5
  • 运行结果: 壹万零仟零佰伍拾捌元伍角陆分

# 2.9. GetControlsImage

function GetControlsImage(ACtrl: TWinControl;AFile:string=''): TBitmap;
1

说明: 截取当前运行界面存为图片文件 返回值: TBitmap类型

  • GetControlsImage函数语法中各部分说明
部分 说明
ACtrl 需要截屏的窗体
AFile 输出文件名称带路径
  • 示例
Begin
	PaxFunc.GetControlsImage(FThis,'c:\123.bmp');
end;
1
2
3

# 2.10. GetFirstDayofMonth

function GetFirstDayofMonth(const DT: TDateTime): TDateTime;
1

说明: 获取指定日期所在月份的第一天。 返回值: 日期TDateTime类型。

  • GetFirstDayofMonth函数语法中各部分说明
部分 说明
DT 指定的一个日期类型
  • 示例
Var
vMonthFirstDay:TDateTime;
Begin
   vFirstEndDay  := PaxFunc.GetFirstDayofMonth('2019-07-10');
end;
1
2
3
4
5
  • 运行结果: 2019-07-01

# 2.11. GetHostIP

function GetHostIP: string;
1

说明: 获取计算机IP地址 返回值: 字符String类型

  • 示例
var
 vHostIP:string;
Begin
	vHostIP:= PaxFunc.GetHostIP;
End;
1
2
3
4
5
  • 运行结果: 192.168.1.100

# 2.12. GetHostName

function GetHostName: string;
1

说明: 获取计算机名称 返回值: 字符string类型

  • 示例
var
 vHostName:string;
Begin
	vHostName := PaxFunc.GetHostName;
End;
1
2
3
4
5
  • 运行结果: I-PC

# 2.13. GetLastDayofMonth

function GetLastDayofMonth(const DT: TDateTime): TDateTime;
1

说明: 获取指定日期所在月份的第后一天。 返回值: 日期TDateTime类型。

  • GetLastDayofMonth函数语法中各部分说明
部分 说明
DT 指定的一个日期类型
  • 示例
Var
vMonthEndDay:TDateTime;
Begin
   vMonthEndDay  := PaxFunc.GetFirstDayofMonth('2019-07-10');
end;
1
2
3
4
5
  • 运行结果: 2019-07-31

# 2.14. GetMacAddress

function GetMacAddress: string;
1

说明: 获取计算机网卡地址 返回值: 字符String类型

  • 示例
var
 vHostMacAddress:string;
Begin
	vHostMacAddress:= GetMacAddress;
End;
1
2
3
4
5
  • 运行结果: 01:1A:1B:EF:0A:BC

# 2.15. GetPropValue

function GetPropValue(QControl:TComponent; QControlProp: string): Variant;
1

说明: 获取控件属性值 返回值: 变体Variant 类型

  • GetPropValue函数语法中各部分说明
部分 说明
QControl 需要获取属性的控件
QControlProp 控件属性名称
  • 示例
var
  vPropValue:variant;
begin
  //获取窗体FThis.dbdts0FItemName对象的Name名称
  vPropValue := PaxFunc.GetPropValue(FThis.dbdts0FItemName,'Name');
  Showmessage(vPropValue);
end;
1
2
3
4
5
6
7

# 2.16. GetNumber

function GetNumber(S: string): string;
1

说明: 截取字符串中的数字 返回值: 字符String类型

  • GetNumber函数语法中各部分说明
部分 说明
S 指定一个包含数字的字符串
  • 示例
var
    v:string;
begin
    v:= PaxFunc.GetNumber ('12A56B.A11');
    //显示返回的SQL内容
    Showmessage(v);
end;
1
2
3
4
5
6
7
  • 运行结果: 125611

# 2.17. GetJSONObject

function GetJSONObject(const QJSONObject: TJSONValue; const QPath:String):TJSONObject;
1

说明: 获取JSON对象中指定的嵌套对象。 返回值: TJSONObject类型。

  • GetJSONObject 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志
  • 示例

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(paxfunc.ParseJSONValue(s));
     j := paxfunc.GetJSONObject(j,'Language');
     ShowMessage(paxfunc.GetJSONNumber(j,'DefaultLanguage'));
     //上述两句程序也可改写为
     //ShowMessage(paxfunc.GetJSONNumber(j,'Language.DefaultLanguage'));
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

  以上程序运行后获取到的值为1。

# 2.18. GetJSONArray

function GetJSONArray(const QJSONObject: TJSONValue; const QPath:String):TJSONArray;
1

说明: 获取JSON对象中指定的数组列。 返回值: TJSONArray类型。

  • GetJSONArray 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志
  • 示例

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1,
        "options":[
            {"options":1},
            {"options":2}
        ]
    }
}
1
2
3
4
5
6
7
8
9
10
//PasScript
Var 
  J:TJSONObject;
  A:TJSONArray;
  s: String;
begin
  J:= TJSONObject.Create;
  A:= TJSONArray.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1,"options":[{"options":1},{"options":2}]}}';
  Try
     j := TJSONObject(paxfunc.ParseJSONValue(s));
     A := paxfunc.GetJSONArray(j,'Language.options');
     J := TJSONObject(A.Items[1]);
     ShowMessage(paxfunc.GetJSONNumber(j,'options'));
  Finally
    j.Free;
    A.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

  以上程序运行后获取到的值为2。

# 2.19. GetJSONString

function GetJSONString(const QJSONObject: TJSONValue; const QPath:String):String;
1

说明: 获取JSON对象中指定键值的字符串。 返回值: String类型。

  • GetJSONString 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(paxfunc.ParseJSONValue(s));
     ShowMessage(paxfunc.GetJSONString(j,'status'));
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14

  以上程序运行后获取到的值为OK。

# 2.20. GetJSONNumber

function GetJSONNumber(const QJSONObject: TJSONValue; const QPath:String):String;
1

说明: 获取JSON对象中指定的键值中的数值。 返回值: String类型。

  • GetJSONNumber 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志
  • 示例

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(paxfunc.ParseJSONValue(s));
     j := paxfunc.GetJSONObject(j,'Language');
     ShowMessage(paxfunc.GetJSONNumber(j,'DefaultLanguage'));
     //上述两句程序也可改写为
     //ShowMessage(paxfunc.GetJSONNumber(j,'Language.DefaultLanguage'));
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

  以上程序运行后获取到的值为1。

# 2.21. GetJSONInteger

function GetJSONInteger(const QJSONObject: TJSONValue; const QPath:String):Integer;
1

说明: 获取JSON对象中指定的键值中的整数数值,并以整数的形式返回。 返回值: Integer类型。

  • GetJSONInteger 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志
  • 示例

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
  i: Integer;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(paxfunc.ParseJSONValue(s));
     i := paxfunc.GetJSONInteger(j,'Language.DefaultLanguage');
     ShowMessage(IntToStr(i));
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

  以上程序运行后获取到的值为1。

# 2.22. GetJSONFloat

function GetJSONFloat(const QJSONObject: TJSONValue; const QPath:String):Double;
1

说明: 获取JSON对象中指定的键值中的浮点数数值,并以浮点数的形式返回。 返回值: Double类型。

  • GetJSONFloat 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志
  • 示例

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1.1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
  i: Double;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1.1}}';
  Try
     j := TJSONObject(paxfunc.ParseJSONValue(s));
     i := paxfunc.GetJSONFloat(j,'Language.DefaultLanguage');
     ShowMessage(FloatToStr(i));
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

  以上程序运行后获取到的值为1.1。

# 2.23. GetJSONBool

function GetJSONBool(const QJSONObject: TJSONValue; const QPath:String):Boolean;
1

说明: 获取JSON对象中指定的键值中的布尔数值,并以布尔值的形式返回。 返回值: Boolean类型。

  • GetJSONBool 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志

  假设需要对以下JSON进行解析。

{
    "status": true,
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": true,"Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(paxfunc.ParseJSONValue(s));
     if (paxfunc.GetJSONBool(j,'status')) then
       ShowMessage('{"status": true}');
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

  以上程序运行后获取到的值为{"status": true}。

# 2.24. GetJSONValue

function GetJSONValue(const QJSONObject: TJSONValue; const QPath:String):TJSONValue;
1

说明: 获取JSON对象中指定的键值中的值。 返回值: TJSONValue类型。

  • GetJSONBool 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志

# 2.25. JSONArray_AddJSONObject

function JSONArray_AddJSONObject(QJSONArray:TJSONArray;const QJSONObject: TJSONValue):TJSONArray;
1

说明: 在原有的JSON队列中添加一个新的JSON对象 返回值: TJSONArray类型。

  • GetJSONBool 函数语法中各部分说明
部分 说明
QJSONArray 要进行获取对象操作的JSON队列名称
QJSONObject 要添加的JSON对象名称

  假设有以下的队列:

[{"status":"ok"}]
1

  需要向其中添加以下的json对象:

{"status":"no"}
1
Var 
  J:TJSONValue;
  A:TJSONArray;
  s1,s2: String;
begin
  s1:= '[{"status":"ok"}]';
  s2:= '{"status":"no"}';
  A := TJSONArray(paxfunc.ParseJSONValue(s1));
  J := paxfunc.ParseJSONValue(s2);
  A := paxfunc.JSONArray_AddJSONObject(A,J);
  ShowMessage(A.ToString);
end;
1
2
3
4
5
6
7
8
9
10
11
12

  执行以上程序,输出的结果为 [{"status","ok"},{"status":"no"}]

# 2.26. JSONObject_AddJSONArray

function JSONObject_AddJSONArray(QJSONObject: TJSONObject; const Str: string; const Val: TJSONValue):TJSONObject;
1

说明: 在原有的JSON对象中添加一个新的JSON值以获取一个新的JSON对象 返回值: TJSONObject类型。

部分 说明
QJSONObject 要获取的JSON对象名称
Str 要添加的键名
Val 要添加的键值

  假设有以下的json对象:

{"status":"ok"}
1

  需要合并以下的json队列作为子对象

[{"status":"no"}]
1
Var 
  J1:TJSONValue;
  J2:TJSONValue;
  A: TJSONValue;
  s1,s2: String;
begin
  s1:= '{"status":"ok"}';
  s2:= '[{"status":"no"}]';
  J1 := paxfunc.ParseJSONValue(s1);
  A := paxfunc.ParseJSONValue(s2);
  J2 := paxfunc.JSONObject_AddJSONArray(TJSONObject(J1),'array',A);
  ShowMessage(j2.ToString);
end;
1
2
3
4
5
6
7
8
9
10
11
12
13

  执行以上程序,输出的结果为 [{"status","ok"},"array":[{"status":"no"}]}

# 2.27. JSONParse

function JSONParse(QType, QPath, QJson: string): string;
1

说明: 解析JSON,获取JSON中的单元的取值。 返回值: string类型。

部分 说明
QType 要获取的JSON对象类型 GetJSONObject,GetJSONArray,GetJSONNumber、GetJSONObject、GetJSONValue、GetJSONBool、GetJSONPair
QPath 获取的JSON对象的路径名称
QJSON 要解析的JSON对象文本
  • 示例
```JSON
{
    "status": true,
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
7
//PasScript
Var 
  s: String;
begin
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  ShowMessage(paxfunc.JSONParse('GetJSONString','status',s));
end;
1
2
3
4
5
6
7

# 2.28. ParseJSONValue

function ParseJSONValue(QJson: string): TJSONValue;
1

说明: 获取字符串形式的JSON对象中指定的键值中的值。 返回值: TJSONValue类型。

  • GetJSONBool 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志

# 2.29. InputNumber

function InputNumber(AField: TField; ACantion: string = ''): Boolean;
1

说明: 显示数字输入小键盘 返回值: 布尔Boolean类型

  • InputNumber函数语法中各部分说明
部分 说明
AField 指定数据集字段,数值型的字段
ACantion 小键盘标签
  • 示例
Begin
   PaxFunc.InputNumber(FThis.RFDataSet1.FieldByName('FInterID'),'请输入一个数字');
End;
1
2
3
  • 运行结果: 数字输入小键盘

# 2.30. InputNumberR

function InputNumberR(var vStr: string; ACantion: string = ''): Boolean;
1

说明: 显示字符型变量输入小键盘 返回值: 布尔Boolean类型

  • 函数语法中各部分说明
部分 说明
vStr 一个字符型变量
ACantion 小键盘标签
  • 示例
Var
 vStr:String;
Begin
   //带变量
   vStr := '1234';
   PaxFunc.InputNumberR(vStr,'请输入字符串');
End;
1
2
3
4
5
6
7
  • 运行结果: 字符型变量输入小键盘

# 2.31. InputNumberStr

function InputNumberStr(AField: TField; ACantion: string = ''): Boolean;
1

说明: 显示用于数据库字符串输入的小键盘 返回值: 布尔Boolean类型

  • InputNumberStr函数语法中各部分说明
部分 说明
AField 指定数据集字段,字段需要是字符型的
ACantion 小键盘标签
  • 示例
Begin 
   //字符型字段
   PaxFunc.InputNumberStr (FThis.dts0.FieldByName('FItemCode'),'请输入字符串');
End;
1
2
3
4
  • 运行结果: 数据库字符串输入小键盘

# 2.32. MACToStr

function MACToStr(ByteArr: PByte; Len: Integer): String;
1

说明: MAC地址转字符串 返回值: 字符Srting类型

  • MACToStr函数语法中各部分说明
部分 说明
ByteArr MAC地址
Len 长度

# 2.33. NetHttpDelete

function NetHttpDelete(const Qurl: string; const QSource:string = ''): string;
1

说明 获取Http请求(Delete方法)。 返回值 字符string类型

  • NetHttpDelete函数语法中各部分说明
部分 说明
Qurl Http URL内容
QSource Http请求体的内容

# 2.34. NetHttpGet

function NetHttpGet(Qurl: string; QSource: string = ''): string;
1

说明: 获取Http请求 返回值: 字符string类型

  • NetHttpGet函数语法中各部分说明
部分 说明
Qurl Http URL内容
QSource Http请求体的内容
  • 示例
var
  vValue:string;
begin
  //获取一个64位唯一ID
  vValue := PaxFunc.NetHttpGet('http://192.168.1.100:8809/system/newid','');
  Showmessage(vValue) ;
end;
1
2
3
4
5
6
7
  • 运行结果: NetHttpGet运行结果

# 2.35. NetHttpPut

function NetHttpPut(const Qurl: string; const QSource: string = ''; const QResponseContent: string = ''; const QContentType: string = ''; const QHeaders:TStringList = nil): string;
1

说明: 提交Http请求 返回值: 字符string类型

  • NetHttpPut函数语法中各部分说明
部分 说明
Qurl Http 内容
QSource 请求体内容
QResponseContent 响应的内容的格式类型
QContentType Http请求的内容类型 4种 application/json,application/xml, multipart/form-data,application/x-www-form-urlencoded
QHeaders Http请求头

# 2.36. NetHttpPost

function NetHttpPost(const Qurl: string; const QSource: string = ''; const QResponseContent: string = ''; const QContentType: string = ''; const QHeaders:TStringList = nil): string;
1

说明: 提交Http请求 返回值: 字符string类型

  • NetHttpPost函数语法中各部分说明
部分 说明
Qurl Http 内容
QSource 请求体内容
QResponseContent 响应的内容的格式类型
QContentType Http请求的内容类型 4种 application/json,application/xml, multipart/form-data,application/x-www-form-urlencoded
QHeaders Http请求头
  • 示例
var
JsonObject:TJSONObject;
vJson:String;
begin
  //通过Http请求,提交数据,JSon格式
  JsonObject := TJSONObject.Create
    .AddPair('customerName', 'XX科技有限公司')
    .AddPair('documentDate', '2019-07-30 00:00:00')
    .AddPair('documentNo', 'WUR20190730001')
    .AddPair('makerPeople', '小王')
    .AddPair('makerDate', '2019-07-30 23:01:01')
    .AddPair('materialCode', '01001')
    .AddPair('materialName', '牛津布')
    .AddPair('piece', '12')
    .AddPair('quantity','122' )
    .AddPair('remark', '备注1')
    .AddPair('status', '审核')
    .AddPair('specification', '180D')
    .AddPair('makerPeople', '小王')
    .AddPair('storehouse', 'A-12')
    .AddPair('unit', '米')
.AddPair('warehouse', '白坯仓库');   
vJson:= '['+JsonObject.ToString+']';
PaxFunc.NetHttpPost('http://127.0.1.1/printing/tofoProdUse/add',vJson ,
'application/json','application/json',nil);
End;
1
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

# 2.37. NextMonth

Function NextMonth(ADateTime: Variant): string;
1

说明: 获取指定日期下一个月第一天 返回值: 字符string类型

  • NextMonth函数语法中各部分说明
部分 说明
ADateTime 指定的一个变体类型
  • 示例
Var
vNextMonth:String;
Begin
   vNextMonth:= PaxFunc.NextMonth ('2019-07-10');
end;
1
2
3
4
5
  • 运行结果: 2019-08-01

# 2.38. OpenForm

function OpenForm(QFormName: string) :TBaseForm;
1

说明: 打开Smart项目中的窗体 返回值: TBaseForm窗体类型

  • OpenForm函数语法中各部分说明
部分 说明
QFormName 窗体Name名称
  • 示例
begin
  paxfunc.OpenForm('Frm002');
end;
1
2
3

# 2.39. ParseJSONObject

function ParseJSONObject(QJsonStr:string):TJsonObject;
1

说明: 解析Json对象 返回值: TJsonObject对象类型

  • ParseJSONObject函数语法中各部分说明
部分 说明
QJsonStr Json格式字符串
  • 示例
var
  v:string;
  JSONObject: TJSONObject;
  LItem: TJSONValue;
  LJPair: TJSONPair;
  LJSONArray: TJSONArray;
  StrJson: string;
  result: string;
  i: Integer;
begin
  FThis.Memo1.Lines.Add(paxfunc.urlDecode(APAYLOAD));
   
  StrJson := paxfunc.urlDecode(APAYLOAD); //假定是上面那个json
  JSONObject := paxfunc.ParseJSONObject(StrJson);
  LJSONArray := JSONObject.GetValue('data') as TJSONArray;
  FTHis.cbb_PrinterS.Items.Clear;
  
  for i := 0 to LJSONArray.size - 1 do 
  begin
    LItem := (LJSONArray.Get(i) as TJSONObject).GetValue('name'); //得到LJSONArray的值 
    FTHis.cbb_PrinterS.Items.Add(LItem.Value);
  end; 
  FTHis.cbb_PrinterS.ItemIndex := 0;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 2.40. RoundToCH

function RoundToCH(const AValue: Double; const ADigit: Integer): Double;
1

说明: 四舍五入函数 返回值: 双精度Double类型

  • 函数语法中各部分说明
部分 说明
AValue 指定一个Double类型的数值
ADigit 指定一个小数点保留位数
  • 示例
Var
 vValue: Double;
Begin
   vValue:= PaxFunc.RoundToCH (12.357,2);
end;
1
2
3
4
5
  • 运行结果: 12.36

# 2.41. SendArticleMessage

function SendArticleMessage(const AccountName, AOpenID: string; AContent: String): Boolean;
1

说明: 发送图文信息 返回值: 布尔Boolean类型

  • SendArticleMessage函数语法中各部分说明
部分 说明
AccountName 微信公众号
AOpenID 微信用户AOpenID,OpenID为微信用户唯一标识ID
AContent 微信消息内容
  • 示例
var
  j: TJSONObject;
  WechatArticle:TWechatArticle;
  i:integer;
begin
  //组装JSON
  j := TJSONObject.Create;
  j.Addpair('title', '爱招飞是什么?');
  j.AddPair('description', '爱招飞是信息化与物联网整合专家。');
  j.AddPair('URL', 'https://www.isoface.cn');
  j.AddPair('picurl', 'http://ppic.meituba.com/uploads/allimg/2019/04/15/92_9257.jpg');
//发送模板消息 
  if paxfunc.SendArticleMessage('测试号','oTpfe0VB-9vClZ4uSpTD05XbBNyI',j.ToJson) Then
      showmessage('发送成功!');
  j.free;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 2.42. SendCustomMessage

function SendCustomMessage(const AccountName, AOpenID, AContent: string): Boolean;
1

说明: 发送文本消息 返回值: 布尔Boolean类型

  • SendCustomMessage函数语法中各部分说明
部分 说明
AccountName 微信公众号
AOpenID 微信用户AOpenID,OpenID为微信用户唯一标识ID
AContent 微信消息内容
  • 示例
Begin
   if paxfunc.SendCustomMessage ('测试号','oTpfe0VB-9vClZ4uSpTD05XbBNyI','这是由Smart发出的一条消息!')  Then
     showmessage('发送成功!');
End;
1
2
3
4

# 2.43. SendEmail

function SendEmail(AParam, AAttFile: TStringList): Boolean;
1

说明: 发送邮件 返回值: 布尔Boolean类型

  • SendEmail函数语法中各部分说明
部分 说明
AParam 邮件的参数,详见示例
AAttFile 附件的地址,详见示例
  • 示例
procedure TMyHandler.Button2Click;
//使用函数的方式发送
var
  Param: TStringlist;
  AttFile: TStringlist;
begin
  if demo then exit;
  Param := TStringlist.Create;
  AttFile := TStringlist.Create;
  Try
      Param.Values['Host'] := FThis.Edit7.Text;
      Param.Values['Port'] := FThis.Edit8.Text;
      Param.Values['Username'] := FThis.Edit5.Text;
      Param.Values['Password'] := FThis.Edit6.Text;
      Param.Values['Address'] := FThis.Edit1.Text;
      Param.Values['Body'] := FThis.Memo1.Lines.text;
      Param.Values['Subject'] := FThis.Edit3.Text;
      Param.Values['CCAddressList'] := FThis.Edit2.Text;
      Param.Values['Receipt'] := '1';
      if FThis.CheckBox1.Checked then
        Param.Values['Bodyhtml'] := '1'
      else
        Param.Values['Bodyhtml'] := '0';
      AttFile.Add(FThis.Edit4.Text);
      if paxfunc.SendEmail(Param, AttFile) then
        ShowMessage(FThis.siLang1.GetTextW('success'))
      else
        ShowMessage(FThis.siLang1.GetTextW('failed'));

  Finally
    FreeAndNil(Param);
    FreeAndNil(AttFile);
  End;
end;
1
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

# 2.44. SendTemplateMessage

function SendTemplateMessage(const AccountName,  AJsonContent: string): Boolean;
1

说明: 发送模板消息 返回值: 布尔Boolean类型

  • SendTemplateMessage函数语法中各部分说明
部分 说明
AccountName 微信公众号
AJsonContent Json格式化字符串
  • 示例
var
 JsonObject:TJSONObject;
Begin
  //组装JSON
  JsonObject := TJSONObject.Create
    .AddPair('touser', 'oTpfe0VB-9vClZ4uSpTD05XbBNyI')
    .AddPair('template_id', 'vX0v1WgEMjUwRhv8EsdeD1diwXm1CRZ5v5bty7hHHMs')
    .AddPair('url', 'www.isoface.cn')
    .AddPair('topcolor', '#FF0000')
    .AddPair('data', TJSONObject.Create
      .AddPair('Caption', TJSONObject.Create
        .AddPair('value', '这是由Smart发出的一条消息!')
        .AddPair('color', '#173177')
      )
);  
//发送模板消息 
   paxfunc.SendTemplateMessage('测试号', JsonObject.ToJson);
   JsonObject.free;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 2.45. SendWechatMsg

function SendWechatMsg(const AccountName, AOpenID, ATemplateID, AContent: string): Boolean;
1

说明: 发送模板消息 返回值: 布尔Boolean类型

  • SendWechatMsg函数语法中各部分说明
部分 说明
AccountName 微信公众号
AOpenID 微信用户AOpenID,OpenID为微信用户唯一标识ID
ATemplateID 微信消息模板ID
AContent 微信消息内容
  • 示例
Begin
   if paxfunc.SendWechatMsg('测试号','oTpfe0VB-9vClZ4uSpTD05XbBNyI',
'vX0v1WgEMjUwRhv8EsdeD1diwXm1CRZ5v5bty7hHHMs','这是由PInToo发出的一条消息!')  Then
     showmessage('发送成功!');
End;
1
2
3
4
5

# 2.46. ShowHandWrite

function ShowHandWrite(QData:string): string;
1

说明: 显示字符串手写板 返回值: 布尔Boolean类型

  • ShowHandWrite函数语法中各部分说明
部分 说明
QData 一个默认的字符串,可以是原文本
  • 示例
Var
  vStr:String;
Begin
   //显示手写板功能
   vStr := PaxFunc.ShowHandWrite ('');
End;
1
2
3
4
5
6
  • 运行效果: 手写板

# 2.47. StreamToBase64

function  StreamToBase64(AStream:TStream):String;
1

说明: 流转base64 返回值: String字符串类型

  • StreamToBase64函数语法中各部分说明
部分 说明
AStream 流对象
  • 示例
var
 aBase64String:string;
 AStream:TMemoryStream;
begin
  //将图片转换成Base64
  AStream:=TMemoryStream.Create;
  AStream.Position := 0;
  FThis.image1.Picture.SaveToStream(AStream);
  aBase64String := paxfunc.StreamToBase64(AStream);
  AStream.Free;
 end;
1
2
3
4
5
6
7
8
9
10
11

# 2.48. UrlDecode

function UrlDecode(const Qurl: string): string;
1

说明: Url解码 返回值: Word类型

  • UrlDecode函数语法中各部分说明
部分 说明
Qurl 需要编码的内容
  • 示例
var
  v:string;
begin
  v:=paxfunc.NetHttpPost('http://192.168.1.100:8808/getprinterlist','','application/xml');
  FThis.Memo1.Lines.Add(paxfunc.urlDecode(v));
end;
1
2
3
4
5
6

# 2.49. UrlEncode

function UrlEncode(const Qurl: string): String;
1

说明: Url编码 返回值: String字符类型

  • UrlEncode函数语法中各部分说明
部分 说明
Qurl 需要编码的内容
  • 示例
  //*可选。邮件主题*/     
  vList.Values['EMailSubject'] := paxfunc.URLEncode('客户基本信息清单'); 
1
2

# 2.50. YesNoMsg

function YesNoMsg(aMsg: string; aTitle: string = ''): Boolean;
1

说明: 是否选择对话框 返回值: 布尔Boolean类型

  • YesNoMsg函数语法中各部分说明
部分 说明
aMsg 对话框消息内容
aTitle 对话框标题
  • 示例
Begin
If PaxFunc.YesNoMsg ('确认删除吗?', '提示') then
Begin
	Showmessage('OK')
End;
end;
1
2
3
4
5
6
  • 运行结果: 选择对话框

# 2.51. ToJSONObjectString

function ToJSONObjectString(ADataSet:TDataSet;const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): string;
1

说明:将数据集中当前选择的的数据行转换为JSON对象的数据集。输出的格式为字段名称与字段值组成的键值对。 返回值: string类型。

{"code":"Code1","name":1}
1
  • ToJSONObjectString函数中语法各部分说明
部分 说明
ADataSet 要转换的数据集控件名称
AOnlyUpdatedRecords 设置是否只存储更新的记录
AChildRecords 设置是否包含子记录
AValueRecords 是否包含数值记录
AEncodeBase64Blob 是否使用Base64编码二进制数据

# 2.52. ToJSONArrayString

function ToJSONArrayString(ADataSet:TDataSet;const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): string;
1

说明: 将数据集中的数据转换为JSONArray。是由JSON对象组成的队列。 返回值: string类型。

[{"code":"Code1","name":1},{"code":"Code2","name":2}]
1
  • ToJSONArrayString函数中语法各部分说明
部分 说明
ADataSet 要转换的数据集控件名称
AOnlyUpdatedRecords 设置是否只存储更新的记录
AChildRecords 设置是否包含子记录
AValueRecords 是否包含数值记录
AEncodeBase64Blob 是否使用Base64编码二进制数据

# 2.53. ToJSONObject

function ToJSONObject(ADataSet:TDataSet;const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): TJSONObject;
1

说明: 将数据集中当前指向的数据行转换为JSON对象类型。 返回值: TJSONObject类型。

  • ToJSONObject函数中语法各部分说明
部分 说明
ADataSet 要转换的数据集控件名称
AOnlyUpdatedRecords 设置是否只存储更新的记录
AChildRecords 设置是否包含子记录
AValueRecords 是否包含数值记录
AEncodeBase64Blob 是否使用Base64编码二进制数据

# 2.54. ToJSONArray

function ToJSONArray(ADataSet:TDataSet;const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): TJSONArray;
1

说明: 将数据集中的数据转换为JSON对象序列类型。 返回值: TJSONArray类型。

  • ToJSONObject函数中语法各部分说明
部分 说明
ADataSet 要转换的数据集控件名称
AOnlyUpdatedRecords 设置是否只存储更新的记录
AChildRecords 设置是否包含子记录
AValueRecords 是否包含数值记录
AEncodeBase64Blob 是否使用Base64编码二进制数据

# 2.55. SaveStructure

function SaveStructure(ADataSet:TDataSet): TJSONArray;
1

说明: 获取当前的数据集的结构信息,以JSONArray的方式输出,包括数据表的字段名称、数据类型、大小等信息。 返回值: TJSONArray类型。

部分 说明
ADataSet 要转换的数据集控件名称

# 2.56. ValidateJSONObject

function ValidateJSONObject(ADataSet:TDataSet;const AJSONObject: TJSONObject; const ALang: TLanguageType = enUS; const AOwns: Boolean = True): TJSONArray;
1

说明: 用于验证JSON对象组件是否有效。 返回值:TJSONArray类型

  • ValidateJSONObject程序语法中各部分说明
部分 说明
ADataSet 要转换的数据集控件名称
AJSONObject 要验证的JSON对象
ALang 语言类型
AOwns 设置是否占用

# 2.57. ValidateJSONString

function ValidateJSONString(ADataSet:TDataSet;const AJSONString: string; const ALang: TLanguageType = enUS): TJSONArray;
1

说明: 用于验证JSON对象字符串是否有效。 返回值:TJSONString类型

  • ValidateJSONString程序语法中各部分说明
部分 说明
ADataSet 要转换的数据集控件名称
AJSONString 要验证的JSON字符串
ALang 语言类型

# 3. IOT类函数

  该章节中的函数需以Iot.开头。

# 3.1. BTACreateServerSocket

function BTACreateServerSocket(ABluetoothAdapter: TBluetoothAdapter; AServerName, AUUID: string; ASecure: Boolean = false): TBluetoothServerSocket;
1

说明: 创建服务端套接字 返回值: TBluetoothServerSocket类型

  • BTACreateServerSocket函数语法中各部分说明
部分 说明
ABluetoothAdapter 蓝牙适配器
AServerName 蓝牙服务名称
AUUID 蓝牙服务UUID
ASecure True=可靠的
  • 示例

# 3.2. BTDCreateClientSocket

function BTDCreateClientSocket(ABluetoothDevice: TBluetoothDevice; AUUID: string; ASecure: Boolean = false): TBluetoothSocket;
1

说明: 创建客户端套接字 返回值: TBluetoothSocket类型

  • BTDCreateClientSocket函数语法中各部分说明
部分 说明
ABluetoothDevice 蓝牙设备
AUUID 蓝牙服务UUID
ASecure 蓝牙服务UUID
  • 示例
var
  LDevice: TBluetoothDevice;
begin
  if (FSocket = nil) or (ItemIndex <> FThis.ComboboxPaired.ItemIndex) then
  begin
    if FThis.ComboboxPaired.ItemIndex > -1 then
    begin
      // 创建客户端套接字
      LDevice := IOT.GetBluetoothDevice(FPairedDevices,FThis.ComboboxPaired.ItemIndex) as TBluetoothDevice;
      FSocket :=  IOT.BTDCreateClientSocket(LDevice,ServiceGUI,false);
      if FSocket <> nil then
      begin
        ItemIndex := FThis.ComboboxPaired.ItemIndex;
        FSocket.Connect;
        IOT.BTSKSendData(FSocket,FThis.ASendData.Text);
        FThis.DisplayR.Lines.Add('发送数据:'+FThis.ASendData.Text);
      end
      else
        ShowMessage('Out of time -15s-');
    end
    else
      ShowMessage('No paired device selected');
  end
  else
  begin
    IOT.BTSKSendData(FSocket,FThis.ASendData.Text);
    FThis.DisplayR.Lines.Add('发送数据:'+FThis.ASendData.Text);
  end;
end;
1
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

# 3.3. BTMConnectionState

function BTMConnectionState(ABluetoothManager: TBluetoothManager): Boolean;
1

说明: 判断蓝牙状态 返回值: Boolean类型

  • BTMConnectionState函数语法中各部分说明
部分 说明
ABluetoothManager 当前蓝牙管理器
  • 示例
  if IOT.BTMConnectionState(FBluetoothManager) then
  begin
    Labeldiscoverable.Text := 'Device discoverable as "'+FBluetoothManager.CurrentAdapter.AdapterName+'"';
    Result := True;
  end
  else
  begin
    Result := False;
    DisplayR.Lines.Add('No Bluetooth device Found');
    DisplayR.GoToTextEnd;
  end;
1
2
3
4
5
6
7
8
9
10
11

# 3.4. BTMCurrent

function BTMCurrent: TBluetoothManager;
1

说明: 获取当前蓝牙管理器 返回值: TBluetoothManager类型

  • 示例
FBluetoothManager := IOT.BTMCurrent;
1

# 3.5. BTSKSendData

procedure BTSKSendData(ABluetoothSocket: TBluetoothSocket; ASendText: string);
1

说明: 发送信息 *BTSKSendData函数语法中各部分说明

部分 说明
ABluetoothSocket 客户端套接字
ASendText 发送的内容
  • 示例
var
  LDevice: TBluetoothDevice;
begin
  if (FSocket = nil) or (ItemIndex <> FThis.ComboboxPaired.ItemIndex) then
  begin
    if FThis.ComboboxPaired.ItemIndex > -1 then
    begin
      LDevice := IOT.GetBluetoothDevice(FPairedDevices,FThis.ComboboxPaired.ItemIndex) as TBluetoothDevice;
      FSocket :=  IOT.BTDCreateClientSocket(LDevice,ServiceGUI,false);
      if FSocket <> nil then
      begin
        ItemIndex := FThis.ComboboxPaired.ItemIndex;
         //客户端套接字连接
        FSocket.Connect;
         //发送数据
        IOT.BTSKSendData(FSocket,FThis.ASendData.Text);
        FThis.DisplayR.Lines.Add('发送数据:'+FThis.ASendData.Text);
      end
      else
        ShowMessage('Out of time -15s-');
    end
    else
      ShowMessage('No paired device selected');
  end
  else
  begin
   //发送数据
    IOT.BTSKSendData(FSocket,FThis.ASendData.Text);
    FThis.DisplayR.Lines.Add('发送数据:'+FThis.ASendData.Text);
  end;
end;
1
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

# 3.6. BTSKReadData

function BTSKReadData(ABluetoothSocket: TBluetoothSocket): string;
1

说明: 读取蓝牙套接字返回的内容 返回值: Word类型

  • BTSKReadData函数语法中各部分说明
部分 说明
ABluetoothSocket 客户端套接字
  • 示例
var
 FData:String;
begin
  //发送数据
  SendData;
  //读取数据
  FData := IOT.BTSKReadData(FSocket);
  FData := Trim(FData);
  if FData <> '' Then
  begin
    if length(FData)=10 Then
    begin
      FThis.DisplayR.Lines.Add('湿度:'+Copy(FData,1,5)+' %, 温度:'+Copy(FData,6,4)+' ℃');
    End
    else
    begin
      FThis.DisplayR.Lines.Add('返回数据:'+FData);  
    End;
  end
  else
  begin
    FThis.DisplayR.Lines.Add('返回数据:无数据!');   
  end        
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 3.7. BTSKReceiveData

function BTSKReceiveData(ABluetoothSocket: TBluetoothSocket): string;
1

说明: 接收信息 返回值: string类型

  • BTSKReceiveData函数语法中各部分说明
部分 说明
ABluetoothSocket 客户端套接字
  • 示例
var
 FData:String;
begin
  //发送数据
  SendData;
  //读取数据
  FData := IOT.BTSKReceiveData(FSocket);
  FData := Trim(FData);
  if FData <> '' Then
  begin
    if length(FData)=10 Then
    begin
      FThis.DisplayR.Lines.Add('湿度:'+Copy(FData,1,5)+' %, 温度:'+Copy(FData,6,4)+' ℃');
    End
    else
    begin
      FThis.DisplayR.Lines.Add('返回数据:'+FData);  
    End;
  end
  else
  begin
    FThis.DisplayR.Lines.Add('返回数据:无数据!');   
  end        
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 3.8. BTSLGetServicesCount

function BTSLGetServicesCount(ABluetoothServiceList: TBluetoothServiceList): Integer;
1

说明: 统计蓝牙服务个数 **返回值:**Integer类型

  • BTSLGetServicesCount函数语法中各部分说明
部分 说明
ABluetoothServiceList 蓝牙服务端列表
  • 示例
var
  LServices: TBluetoothServiceList;
  LDevice: TBluetoothDevice;
  I: Integer;
begin
  FThis.ComboBoxServices.Clear;
  if ManagerConnected then
    if FThis.ComboboxPaired.ItemIndex > -1 then
    begin
      //获取蓝牙设备
      LDevice := FPairedDevices[FThis.ComboboxPaired.ItemIndex] as TBluetoothDevice;
      //获取蓝牙设备服务
      LServices := LDevice.GetServices;
      //遍历蓝牙服务列表
      for I := 0 to IOT.BTSLGetServicesCount(LServices) - 1 do
      begin
        FThis.ComboBoxServices.Items.Add(IOT.BTSLGetServicesName(LServices,I) + '-->' + IOT.BTSLGetServicesUUID(LServices,I));
      End;
      FThis.ComboBoxServices.ItemIndex := 0;
    end
    else
      ShowMessage('No paired device selected');
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 3.9. BTSLServicesName

function BTSLServicesName(ABluetoothServiceList: TBluetoothServiceList; AIndex: Integer): string;
1

说明: 获取蓝牙服务名称 返回值: string字符类型

  • BTSLServicesName函数语法中各部分说明
部分 说明
ABluetoothDeviceList 配对蓝牙列表
AIndex 蓝牙索引号
  • 示例
var
  LServices: TBluetoothServiceList;
  LDevice: TBluetoothDevice;
  I: Integer;
begin
  FThis.ComboBoxServices.Items.Clear;
  if ManagerConnected then
    if FThis.ComboboxPaired.ItemIndex > -1 then
    begin
      LDevice := IOT.GetBluetoothDevice(FPairedDevices,FThis.ComboboxPaired.ItemIndex) as TBluetoothDevice;
      LServices := LDevice.GetServices;
      
      for I := 0 to LServices.Count - 1 do
      begin
        FThis.ComboBoxServices.Items.Add(IOT.BTSLServicesName(LServices,I) + '-->' + IOT.BTSLServicesUUID(LServices,I));
      End;
      
      if LServices.Count > 0 then
         FThis.ComboBoxServices.ItemIndex := 0;
    end
    else
      ShowMessage('No paired device selected');
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 3.10. BTSLServicesUUID

function BTSLServicesUUID(ABluetoothServiceList: TBluetoothServiceList; AIndex: Integer): string;
1

说明: 获取蓝牙服务UUID 返回值: string字符类型

  • BTSLServicesUUID函数语法中各部分说明
部分 说明
ABluetoothDeviceList 配对蓝牙列表
AIndex 蓝牙索引号
  • 示例
var
  LServices: TBluetoothServiceList;
  LDevice: TBluetoothDevice;
  I: Integer;
begin
  FThis.ComboBoxServices.Items.Clear;
  if ManagerConnected then
    if FThis.ComboboxPaired.ItemIndex > -1 then
    begin
      LDevice := IOT.GetBluetoothDevice(FPairedDevices,FThis.ComboboxPaired.ItemIndex) as TBluetoothDevice;
      LServices := LDevice.GetServices;
      
      for I := 0 to LServices.Count - 1 do
      begin
        FThis.ComboBoxServices.Items.Add(IOT.BTSLServicesName(LServices,I) + '-->' + IOT.BTSLServicesUUID(LServices,I));
      End;
      
      if LServices.Count > 0 then
         FThis.ComboBoxServices.ItemIndex := 0;
    end
    else
      ShowMessage('No paired device selected');
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 3.11. BTSSAccept

function BTSSAccept(ABluetoothServerSocket: TBluetoothServerSocket): TBluetoothSocket;
1

说明: 接收一个蓝牙套接字 **返回值:**TBluetoothSocket类型 *BTSSAccept函数语法中各部分说明

部分 说明
ABluetoothServerSocket 服务端套接字
  • 示例
var
 ASocket:TBluetoothSocket;
begin
  ASocket := nil;
  ASocket := IOT.BTSSAccept(FServerSocket);
 end;
1
2
3
4
5
6

# 3.12. ComReadAnsiString

function ComReadAnsiString(AComPort:TComPort): AnsiString;
1

说明: 读取串口返回的字符串 返回值: AnsiString字符串类型

  • ComReadAnsiString函数语法中各部分说明
部分 说明
AComPort 需要操作的串口通讯控件对象

# 3.13. ComReadString

function ComReadString(AComPort:TComPort): String;
1

说明: 读取串口返回的字符串 返回值: String字符串类型

  • ComReadString函数语法中各部分说明
部分 说明
AComPort 需要操作的串口通讯控件对象

# 3.14. GetBluetoothDevice

function GetBluetoothDevice(ABluetoothDeviceList: TBluetoothDeviceList; AIndex: Integer): TBluetoothDevice;
1

说明: 获取已配对蓝牙 返回值: TBluetoothDevice类型

  • GetBluetoothDevice函数语法中各部分说明
部分 说明
ABluetoothDeviceList 配对蓝牙列表
AIndex 蓝牙索引号
  • 示例
var
  I: Integer;
begin
  FThis.ComboboxPaired.Items.Clear;
  FPairedDevices := FBluetoothManager.GetPairedDevices;
  if FPairedDevices.Count > 0 then
  begin
    for I:= 0 to FPairedDevices.Count - 1 do
    begin
      FBluetoothDevice := IOT.GetBluetoothDevice(FPairedDevices,I);
      FThis.ComboboxPaired.Items.Add(FBluetoothDevice.DeviceName);
    end;
  end
  else
    FThis.ComboboxPaired.Items.Add('No Paired Devices');
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 3.15. IdTCPClientSendCmd

function IdTCPClientSendCmd(AIdTCPClient: TIdTCPClient; QAOut: string): Int16;
1

说明: 发送TCP命令 返回值: Int16类型

  • IdTCPClientSendCmd函数语法中各部分说明
部分 说明
AIdTCPClient 需要操作的IdTCPClient对象
QAOut 发送的内容
  • 示例
//发送TCP命令
IOT.IdTCPClientSendCmd(FThis.IdTCPClient1,'1');
1
2

# 3.16. ModbusTCPReadCoils

function ModbusTCPReadCoils(const RegNo, Blocks: Word; Modbus: TIdModBusClient): string;
1

说明: 读取输出数位讯号 返回值: String字符串类型

  • ModbusTCPReadCoils函数语法中各部分说明
部分 说明
RegNo 起始位址
Blocks 数据长度
Modbus 需要操作的ModbusTCP对象

# 3.17. ModbusTCPReadHoldingRegisters

function ModbusTCPReadHoldingRegisters(const RegNo, Blocks: Word; Modbus: TIdModBusClient): string;
1

说明: 读取输出类比讯号 返回值: String字符串类型

  • ModbusTCPReadHoldingRegisters函数语法中各部分说明
部分 说明
RegNo 起始位址
Blocks 数据长度
Modbus 需要操作的ModbusTCP对象

# 3.18. ModbusTCPWriteCoils

function ModbusTCPWriteCoils(const RegNo, Blocks: Word; const RegisterData: string; Modbus: TIdModBusClient): boolean;
1

说明: 写入数位(多个)讯号 返回值: boolean布尔类型

  • ModbusTCPWriteCoils函数语法中各部分说明
部分 说明
RegNo 起始位址
Blocks 数据长度
RegisterData 需要写入的内容
Modbus 需要操作的ModbusTCP对象

# 3.19. ModbusTCPWriteRegisters

function ModbusTCPWriteRegisters(const RegNo, Blocks: Word; const RegisterData: string; Modbus: TIdModBusClient): boolean;
1

说明: 写入类比(多个)讯号 返回值: boolean布尔类型

  • ModbusTCPWriteRegisters函数语法中各部分说明
部分 说明
RegNo 起始位址
Blocks 数据长度
RegisterData 需要写入的内容
Modbus 需要操作的ModbusTCP对象

# 4. BaseFrom基类函数

基类程序在脚本中调用时,必须以FThis.开头。

# 4.1. GetData

function GetData(QIndex: Integer): TRFDataSet;
1

说明: 获取基类数据集 返回值: 数据集TRFDataSet类型

  • GetData函数语法中各部分说明
部分 说明
QIndex 数据集索引
  • 示例
Var
 vData:TRFDataSet;
begin
  //获取基类DataSetList中第0号数据集
  vData :=FThis.GetData (0);
  vData.Open;
end;
1
2
3
4
5
6
7
系统程序
自定程序

← 系统程序 自定程序→

Copyright © 2021-2025 爱招飞IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式