自定程式
# 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