多媒體控制元件
# PinToo控制元件使用(多媒體元件)
多媒體控制元件中包含了用於媒體內容展示的相關控制元件型別
# 1. TfxBaiduOCR(僅內部使用)
- 引用單元 CCBaiduOCR
TfxBaiduOCR是一個基於BaiduOCR的OCR識別元件。使用時需要到百度官方網站進行註冊申請Key。
OCR (Optical Character Recognition,光學字符識別)是指電子設備(例如掃描器或數碼相機)檢查紙上列印的字元,通過檢測暗、亮的模式確定其形狀,然後用字元識別方法將形狀翻譯成計算機文字的過程;即,針對印刷體字元,採用光學的方式將紙質文件中的文字轉換成為黑白點陣的影象檔案,並通過識別軟體將影象中的文字轉換成文字格式,供文書處理軟體進一步編輯加工的技術。如何除錯或利用輔助資訊提高識別正確率,是OCR最重要的課題,ICR(Intelligent Character Recognition)的名詞也因此而產生。衡量一個OCR系統性能好壞的主要指標有:拒識率、誤識率、識別速度、用戶界面的友好性,產品的穩定性,易用性及可行性等。
# 1.1. 事件(Events)
- TfxBaiduOCR元件主要事件
事件 | 何時觸發 |
---|---|
OnInitAccessTokenWithAkSkResult | 初始化元件時觸發 |
OnRecognizeResult | 識別完成時觸發 |
# 1.1.1. OnInitAccessTokenWithAkSkResult事件
procedure (Sender: TObject;AErrorCode: Integer; AErrorMsg: String; AToken: String);
當TfxBaiOCR元件呼叫InitAccessTokenWithAkSk方法時,觸發該事件。
if AErrorCode = 0 then
begin
showmessage('獲取token成功!' + #13#10 + AToken);
end
else
begin
showmessage('獲取token失敗!' + #13#10 + AErrorMsg);
end;
2
3
4
5
6
7
8
# 1.1.2. OnRecognizeResult事件
procedure(Sender: TObject;AOCRType: String; AErrorCode: Integer; AErrorMsg: String;AFilePath: String; AJosonResult: String; AIDCardInfo:TCCIDCardInfo;ABankCardInfo: TCCBankCardInfo)
當TfxBaiOCR元件識別成功時,觸發該事件並返回識別結果。
Showmessage(AJosonResult);
# 1.2. 方法(Methods)
- TfxBaiduOCR元件主要方法
方法 | 功能說明 |
---|---|
ocr_general_basic | 識別SIM卡號、通用文字識別 |
ocr_general | 通用文字識別含位置資訊 |
ocr_accurate | 通用文字識別含位置資訊高精版 |
ocr_general_webimage | 網路圖片識別 |
OCR_id_card_front_native | 身份證正面識別 |
OCR_id_card_back_native | 身份證反面識別 |
ocr_bank_card | 銀行卡識別 |
ocr_vehicle_license | 行駛證識別 |
ocr_driving_license | 駕駛證識別 |
ocr_business_license | 營業執照識別 |
ocr_receipt | 通用票據識別 |
ocr_license_plate | 車牌識別 |
initAccessTokenWithAkSk | 初始化OCR元件 |
# 1.2.1. ocr_general_basic方法
識別SIM卡號、通用文字識別。
//SIM卡識別
fxBaiduOCR1.TagString:='SIM';
fxBaiduOCR1.ocr_general_basic;
//通用文字識別
fxBaiduOCR1.TagString:='ocr_general_basic';
fxBaiduOCR1.ocr_general_basic;
2
3
4
5
6
7
# 1.2.2. ocr_general方法
通用文字識別含位置資訊。
//通用文字識別含位置資訊
fxBaiduOCR1.ocr_general;
2
# 1.2.3. ocr_accurate方法
通用文字識別含位置資訊。
//通用文字識別含位置資訊高精版
fxBaiduOCR1.TagString:='ocr_accurate';
fxBaiduOCR1.ocr_accurate;
2
3
# 1.2.4. ocr_general_webimage方法
網路圖片識別。
//網路圖片識別
fxBaiduOCR1.TagString:='ocr_general_webimage';
fxBaiduOCR1.ocr_general_webimage;
2
3
# 1.2.5. OCR_id_card_front_native方法
身份證正面識別。
//身份證正面識別
fxBaiduOCR1.TagString:='OCR_id_card_front_native';
fxBaiduOCR1.OCR_id_card_front_native;
2
3
# 1.2.6. OCR_id_card_back_native方法
身份證反面識別。
//身份證反面識別
fxBaiduOCR1.TagString:='OCR_id_card_back_native';
fxBaiduOCR1.OCR_id_card_back_native;
2
3
# 1.2.7. ocr_bank_card方法
銀行卡識別。
fxBaiduOCR1.TagString:='ocr_bank_card';
fxBaiduOCR1.ocr_bank_card;
2
# 1.2.8. ocr_vehicle_license方法
行駛證識別。
//行駛證識別
fxBaiduOCR1.TagString:='OCR_id_card_front_native';
fxBaiduOCR1.ocr_vehicle_license;
2
3
# 1.2.9. ocr_driving_license方法
駕駛證識別。
//駕駛證識別
fxBaiduOCR1.TagString:='ocr_driving_license';
fxBaiduOCR1.ocr_driving_license;
2
3
# 1.2.10. ocr_business_license方法
營業執照識別。
//營業執照識別
fxBaiduOCR1.ocr_business_license;
2
# 1.2.11. ocr_receipt方法
通用票據識別。
//通用票據識別
fxBaiduOCR1.TagString:='ocr_receipt';
fxBaiduOCR1.ocr_receipt;
2
3
# 1.2.12. ocr_license_plate方法
車牌識別。
//車牌識別
fxBaiduOCR1.TagString:='ocr_license_plate';
fxBaiduOCR1.ocr_license_plate;
2
3
# 1.2.13. initAccessTokenWithAkSk方法
procedure TCCBaiduOCR.initAccessTokenWithAkSk(ak: String; sk: String);
BaiOCR初始化,驗證AK,SK是否正確,並返回AccessToken令牌。
fxBaiduOCR1.initAccessTokenWithAkSk(ak字串,sk字串);
# 2. TfxBaiduAPI
- 引用單元 uBaiduAPI
TfxBaiduAPI是一個基於BaiduOCR的OCR識別元件。使用時需要到百度官方網站進行註冊申請Key。
# 2.1. 屬性(Properties)
- TfxBaiduAPI元件SdkConfig主要屬性
屬性 | 功能說明 |
---|---|
APIKey | 百度OCR APIKey |
Secret | 百度OCR金鑰 |
- 示例
基礎文字識別
//基礎文字識別
var
v:string;
begin
//可指定檔案或指定圖片的Bitmap
fxBaiduAPI1.FileToBase64 := PicturePath; //PicturePath是指圖片路徑
fxBaiduAPI1.SetPictureToBase64(Image1.Bitmap)//指定圖片的Bitmap
fxBaiduAPI1.GeneralBasic := fxBaiduAPI1.FileToBase64;
v := fxBaiduAPI1.GeneralBasic;
end;
2
3
4
5
6
7
8
9
10
車牌識別
//車牌識別
var
v:string;
begin
//可指定檔案或指定圖片的Bitmap
fxBaiduAPI1.FileToBase64 := PicturePath; //PicturePath是指圖片路徑
fxBaiduAPI1.SetPictureToBase64(Image1.Bitmap)//指定圖片的Bitmap
fxBaiduAPI1.licensePlate := fxBaiduAPI1.FileToBase64;
v := fxBaiduAPI1.licensePlate;
end;
2
3
4
5
6
7
8
9
10
//車牌識別時觸發DolicensePlate事件,可在事件中定義其它配合的業務邏輯
Procedure fxBaiduAPI1DolicensePlate(Sender: TObject; Color: string; Number: string);
Begin
Showmessage('顏色:'+Color+',車牌號:'+Number);
End;
2
3
4
5
車型識別
//車型識別
var
v:string;
begin
//可指定檔案或指定圖片的Bitmap
fxBaiduAPI1.FileToBase64 := PicturePath; //PicturePath是指圖片路徑
fxBaiduAPI1.SetPictureToBase64(Image1.Bitmap)//指定圖片的Bitmap
fxBaiduAPI1.Car := fxBaiduAPI1.FileToBase64;
v := fxBaiduAPI1.Car;
end;
2
3
4
5
6
7
8
9
10
# 3. TfxBarcodeScanner
- 引用單元 CCBarcodeScanner
一維二維條碼識別元件。
# 3.1. 屬性(Properties)
- TfxBarcodeScanner元件SdkConfig主要屬性
屬性 | 功能說明 |
---|---|
Flashlight | 指定是否開啟閃光燈功能 |
PlayVoice | 指定是否開啟掃瞄提示音 |
Scan_ExtraTips | 指定掃瞄框下方提示資訊 |
Scan_Tips | 指定掃瞄框提示資訊 |
Scan_Title | 指定掃瞄窗體的標題欄 |
ShowScanFromPhotoButton | 指定是否顯示相簿按鈕 |
ToastResult | 指定是否顯示掃瞄返回結果 |
Vibrate | 指定是否開啟震動功能 |
# 3.1.1. Flashlight屬性
開啟閃光燈,可以在光線不足的情況下增加掃瞄成功率。
//開啟閃光燈
fxBarcodeScanner1.SdkConfig.Flashlight := true;
2
# 3.1.2. PlayVoice屬性
開啟掃瞄提示音,掃瞄條碼成功後會有「嘀」的聲音發出。
//開啟提示音
fxBarcodeScanner1.SdkConfig.PlayVoice := true;
2
# 3.1.3. Scan_ExtraTips屬性
指定一個掃瞄框下方面提示內容。
# 3.1.4. Scan_Tips屬性
指定一個掃瞄框上方面提示內容。
fxBarcodeScanner1.SdkConfig.Scan_Tips := '將二維碼/條碼放入框內,即可自動掃瞄';
# 3.1.5. Scan_Title屬性
指定一個掃瞄框窗體的標題內容。
fxBarcodeScanner1.SdkConfig.Scan_Title := '二維碼/條碼';
# 3.1.6. ShowScanFromPhotoButton屬性
指定是否開啟相簿按鈕,當設定為True時,顯示相簿按鈕,可選擇相簿中包含條碼資訊的相片進行條碼識別。
//開啟相簿按鈕
fxBarcodeScanner1.SdkConfig.ShowScanFromPhotoButton := true;
2
# 3.1.7. ToastResult屬性
指定是否開啟返回掃瞄結果。開啟時,掃瞄識別的條碼資訊會通過Toast提示框方式顯示在螢幕上。
//顯示掃瞄結果
fxBarcodeScanner1.SdkConfig.ToastResult := true;
2
# 3.1.8. Vibrate屬性
指定是否開啟震動功能。開啟時,掃瞄成時會以震動反饋出來。
//開啟震動功能
fxBarcodeScanner1.SdkConfig.Vibrate := true;
2
# 3.2. 3.1.2.事件(Events)
- TfxBarcodeScanner元件主要事件
事件 | 何時觸發 |
---|---|
OnScanComletedCallbackEvent | 當條碼掃瞄成功后回撥觸發 |
# 3.2.1. OnScanComletedCallbackEvent事件
當條碼掃瞄成功后回撥觸發,在此可以實現特定的業務處理。
Procedure fxBarcodeScanner1OnScanComletedCallbackEvent(Sender: TObject; ResultCode: Integer; ResultString: string);
Begin
fxMemo1.Lines.Add(ResultString);//將掃瞄結果寫入文字框中
End;
2
3
4
# 3.3. 方法(Methods)
- TfxBarcodeScanner元件主要方法
方法 | 功能說明 |
---|---|
Start | 開始掃瞄 |
# 3.3.1. Start方法
fxBarcodeScanner1.Start;
# 4. TfxObr
- 引用單元 SystemClass
TfxObr是一個識別圖片中二維碼的元件。
通過fxObr1.Obr方法識別圖片中的二維碼,並通過OnObr事件反饋識別后的結果。
//識別Image1圖片中的二維碼
fxObr1.Obr(Image1.Bitmap);
2
# 5. TfxGPrinter
- 引用單元 CCGPrinter
TfxGPrinter是一個佳博條碼印表機元件,通過藍芽方式進行連線列印。
TfxGPrinter包含兩個打機印型別 TCCGPrinterEscCommand(小票POS印表機)和TCCGPrinterLabelCommand(標籤印表機)。
# 5.1. 屬性(Properties)
- TfxGPrinter元件主要屬性
屬性 | 功能說明 |
---|---|
BluetoothMacAddress | 指定藍芽MAC地址 |
# 5.1.1. BluetoothMacAddress屬性
property BluetoothMacAddress: String read FBluetoothMacAddress write SetBluetoothMacAddress;
BluetoothMacAddress屬性是指被連線的藍芽印表機的Mac地址,通過指定Mac地址,實現連線和列印功能。
AGPrinter.BluetoothMacAddress:='DC:0D:30:75:4B:6C'; //將藍芽地址賦值給控制元件
# 5.2. 方法(Methods)
# 5.2.1. TfxGPrinter元件主要方法
- TfxGPrinter元件主要方法
方法 | 功能說明 |
---|---|
OpenPort | 打開藍芽連線 |
ClosePort | 關閉藍芽連線 |
sendLabelCommand | 發送標籤列印命令 |
sendEscCommand | 發送POS列印命令 |
# 5.2.1.1.1. OpenPort方法
function OpenPort: Boolean;
使用OpenPort方法時,必需先配對並指定藍芽Mac地址。
AGPrinter.BluetoothMacAddress:='DC:0D:30:75:4B:6C'; //將藍芽地址賦值給控制元件
if AGPrinter.OpenPort then
showmessage('連線成功!')
else
showmessage('連線失敗!');
2
3
4
5
# 5.2.1.1.2. ClosePort方法
function ClosePort: Boolean;
使用ClosePort方法時,將會關閉與印表機的連線。
# 5.2.1.1.3. sendLabelCommand方法
procedure sendLabelCommand(ALabelCommand: TCCGPrinterLabelCommand);
發送標籤列印命令。
# 5.2.1.1.4. sendEscCommand方法
procedure sendEscCommand(AEscCommand: TCCGPrinterEscCommand);
發送小票列印命令。
# 5.2.2. TCCGPrinterLabelCommand類主要方法
- TCCGPrinterLabelCommand類主要方法
方法 | 功能說明 |
---|---|
addSize | 設定標籤尺寸 |
addGap | 設定間隙長度 |
addCashdrwer | 產生錢箱控制脈衝 |
addOffset | 控制每張標籤的停止位置 |
addSpeed | 設定列印速度 |
addDensity | 設定列印濃度 |
addDirection | 設定列印方向和映象 |
addReference | 設定原點座標,原點座標位置與 DIRECION 設定有關 |
addCls | 清除列印緩衝區數據 |
addFeed | 走紙 |
addBackFeed | 退紙 |
addFormFeed | 走一張標籤距離 |
addHome | 標籤紙位置進行一次校準 |
addPrint | 列印標籤 |
addCodePage | 設定國際內碼表 |
addSound | 設定蜂鳴器 |
addLimitFeed | 用於設定印表機走紙時,若走過設定長度仍無法檢測到間隙,則印表機報錯 |
addBar | 在列印緩衝區域上繪製黑塊 |
add1DBarcode | 在列印緩衝區域上繪製一維條碼 |
addBox | 在列印緩衝區域繪製矩形 |
addBitmap | 在列印緩衝區域繪製點陣圖 |
addErase | 擦除列印緩衝區中指定區域的數據 |
addReverse | 將指定區域的數據黑白反色 |
addText | 在列印緩衝區中繪製文字 |
addQRCode | 在列印緩衝區中繪製二維碼 |
addPeel | 設定剝離功能是否開啟,僅限於部分機型,預設關閉 |
addTear | 設定撕離功能是否開啟,預設開啟 |
addCut | 設定切刀功能是否開啟,僅限於部分機型 |
addReprint | 設定印表機出現錯誤時,是否列印上一張內容,預設開啟 |
addPrintKey | 設定是否按走紙鍵列印最近一張標籤 |
addPrintKeyM | 設定按走紙鍵列印最近一張標籤的份數 |
# 5.2.2.1.1. addSize方法
//功能:設定標籤尺寸
//參數:width:標籤寬度 mm
//height:標籤高度 mm
//返回值:無
procedure addSize(width: Integer; height: Integer);
2
3
4
5
# 5.2.2.1.2. addGap方法
//功能:設定間隙長度
//參數:gap:間隙長度單位 mm
//返回值:無
procedure addGap(gap: Integer);
2
3
4
# 5.2.2.1.3. addCashdrwer方法
//功能:產生錢箱控制脈衝
//參數:m :錢箱引腳號
//t1 :高電平時間為 t1 x 2ms
//t2 : 低電平時間為 t2 x 2ms
//返回值:無
procedure addCashdrwer(m: TCCGPrinter_LabelCommand_FOOT; t1: Integer; t2: Integer);
2
3
4
5
6
# 5.2.2.1.4. addOffset方法
//功能:控制每張標籤的停止位置
//參數:offset: 停止偏移量 mm
//返回值:無
procedure addOffset(offset: Integer); cdecl; // (I)V
2
3
4
# 5.2.2.1.5. addSpeed方法
//功能:設定列印速度
//參數:speed: 列印速度
//返回值:無
//procedure addSpeed(speed: TCCGPrinter_LabelCommand_SPEED);
2
3
4
# 5.2.2.1.6. addDensity方法
//功能:設定列印濃度
//參數:density: 列印濃度
//返回值:無
procedure addDensity(density: TCCGPrinter_LabelCommand_DNESITY);
2
3
4
# 5.2.2.1.7. addDirection方法
//功能:設定列印方向和映象
//參數:direction: 列印方向
//mirror: 是否映象
procedure addDirection(direction: TCCGPrinter_LabelCommand_DIRECTION;mirror: TCCGPrinter_LabelCommand_MIRROR);
2
3
4
# 5.2.2.1.8. addReference方法
//功能:設定原點座標,原點座標位置與 DIRECION 設定有關
//參數:x :原點橫座標
//y:原點縱座標
procedure addReference(x: Integer; y: Integer);
2
3
4
# 5.2.2.1.9. addCls方法
//功能:清除列印緩衝區數據
//參數:無
procedure addCls;
2
3
# 5.2.2.1.10. addFeed方法
//功能:走紙
//參數:dot:走紙距離 單位 點
//返回值:無
procedure addFeed(dot: Integer);
2
3
4
# 5.2.2.1.11. addBackFeed方法
//功能:退紙
//參數:dot:退紙距離 單位 點
//返回值:無
procedure addBackFeed(dot: Integer);
2
3
4
# 5.2.2.1.12. addFormFeed方法
//功能:走一張標籤距離
//參數:無
//返回值:無
procedure addFormFeed;
2
3
4
# 5.2.2.1.13. addHome方法
//功能:標籤位置進行一次校準
//參數:無
//返回值:無
procedure addHome;
2
3
4
# 5.2.2.1.14. addPrint方法
//功能:列印標籤
//參數:m 為列印的份數
//返回值:無
procedure addPrint(m: Integer); overload;
procedure addPrint(m, n: Integer); overload;
2
3
4
5
# 5.2.2.1.15. addCodePage方法
//功能:設定國際內碼表
//參數:page :國際內碼表
//返回值:無
procedure addCodePage(page: TCCGPrinter_LabelCommand_CODEPAGE);
2
3
4
# 5.2.2.1.16. addSound方法
//功能:設定蜂鳴器
//參數:level: 聲音階級
//Interval: 聲音長短
//返回值:無
procedure addSound(level: Integer; interval: Integer);
2
3
4
5
# 5.2.2.1.17. addLimitFeed方法
//功能:用於設定印表機走紙時,若走過設定長度仍無法檢測到間隙,則印表機報錯
//參數:n : 走紙長度 單位 mm
//返回值:無
procedure addLimitFeed(n: Integer);
2
3
4
# 5.2.2.1.18. addBar方法
//功能:在列印緩衝區域上繪製黑塊
//參數:x:起始橫座標
//y:起始縱座標
//width:線寬
//height:線高
//返回值:無
procedure addBar(x: Integer; y: Integer; width: Integer; height: Integer);
2
3
4
5
6
7
# 5.2.2.1.19. add1DBarcode方法
//功能:在列印緩衝區域繪製一維條碼
//參數:x:起始橫座標
//y:起始縱座標
//type:條碼型別
//height:條碼高度
//readable:是否列印可識別字符
//rotation:條碼旋轉角度 0°、 90°、 180°、 270°
//content:條碼數據,數據需參考條碼規則輸入
//注意:列印 CODE128 碼時預設為 CODEB,如需列印 CODEA 或 CODEC 請按以下規則輸入
//返回值:無
procedure add1DBarcode(x: Integer; y: Integer;atype: TCCGPrinter_LabelCommand_BARCODETYPE; height: Integer;readable: TCCGPrinter_LabelCommand_READABEL;rotation: TCCGPrinter_LabelCommand_ROTATION; content: String);
2
3
4
5
6
7
8
9
10
11
# 5.2.2.1.20. addBox方法
//功能:在列印緩衝區域繪製矩形
//參數:x:起始橫座標
//y:起始縱座標
//xend:終點橫座標
//yend:終點縱座標
//返回值:無
procedure addBox(x: Integer; y: Integer; xend: Integer; yend: Integer);
2
3
4
5
6
7
# 5.2.2.1.21. addBitmap方法
//功能:在列印緩衝區域繪製點陣圖
//參數:x:起始橫座標
//y:起始縱座標
//mode:點陣圖模式
//nWidth:點陣圖列印的寬度
//b:點陣圖數據
procedure addBitmap(x: Integer; y: Integer;mode: TCCGPrinter_LabelCommand_BITMAP_MODE; nWidth: Integer; b: TBitmap);
2
3
4
5
6
7
# 5.2.2.1.22. addErase方法
{
功能:擦除列印緩衝區中指定區域的數據
參數:x:起始橫座標
y:起始縱座標
xwidth:橫向寬度
yheight:縱向高度
}
procedure addErase(x: Integer; y: Integer; xwidth: Integer; yheight: Integer);
2
3
4
5
6
7
8
# 5.2.2.1.23. addReverse方法
{
功能:將指定區域的數據黑白反色
參數:x:起始橫座標
y:起始縱座標
xwidth:橫向寬度
yheight:縱向高度
}
procedure addReverse(x: Integer; y: Integer; xwidth: Integer;yheight: Integer);
2
3
4
5
6
7
8
# 5.2.2.1.24. addText方法
{
功能:在列印緩衝區中繪製文字
參數:x:起始橫座標
y:起始縱座標
font:字型型別
enum FONTTYPE {
FONT_1
("1"), 8x12 dot 英文和數字
FONT_2
("2"), 12x20 dot 英文和數字
FONT_3
("3"), 16x24 dot 英文和數字
FONT_4
("4"), 24x32 dot 英文和數字
FONT_5
("5"), 32x48 dot 英文和數字
FONT_6
("6"), 14x19 dot 英文和數字
FONT_7
("7"), 21x27 dot 英文和數字
FONT_8
("8"), 14x25 dot 英文和數字
SIMPLIFIED_CHINESE("TSS24.BF2"), 簡體中文
TRADITIONAL_ CHINESE ("TST24.BF2"), 繁體中文
KOREAN("K"); 韓文
rotation:旋轉角度 0°、 90°、 180°、 270°
xscal:橫向放大係數 1-10 倍
yscal:縱向放大係數 1-10 倍
text:文字字串
}
procedure addText(x: Integer; y: Integer;font: TCCGPrinter_LabelCommand_FONTTYPE;rotation: TCCGPrinter_LabelCommand_ROTATION;Xscal: TCCGPrinter_LabelCommand_FONTMUL;Yscal: TCCGPrinter_LabelCommand_FONTMUL; text: String);
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
# 5.2.2.1.25. addQRCode方法
{
功能:在列印緩衝區中繪製二維碼
參數:x:起始橫座標
y:起始縱座標
level:糾錯級別
cellwidth:單元大小
rotation:旋轉角度 0°、 90°、 180°、 270°
data:文字字串
返回值:無
}
procedure addQRCode(x: Integer; y: Integer;level: TCCGPrinter_LabelCommand_EEC; cellwidth: Integer;rotation: TCCGPrinter_LabelCommand_ROTATION; data: String);
2
3
4
5
6
7
8
9
10
11
# 5.2.2.1.26. addPeel方法
{
功能:設定剝離功能是否開啟,僅限於部分機型,預設關閉
參數:enable 是否可用
返回值:無
}
procedure addPeel(enable: TCCGPrinter_EscCommand_ENABLE);
2
3
4
5
6
# 5.2.2.1.27. addTear方法
{
功能:設定撕離功能是否開啟,預設開啟
參數:enable 是否可用
返回值:無
}
procedure addTear(enable: TCCGPrinter_EscCommand_ENABLE);
2
3
4
5
6
# 5.2.2.1.28. addCut方法
{
功能:設定切刀功能是否開啟,僅限於部分機型
參數:enable 是否使能
返回值:無
}
procedure addCut(enable: TCCGPrinter_EscCommand_ENABLE);
2
3
4
5
6
# 5.2.2.1.29. addReprint方法
{
功能:設定印表機出現錯誤時,是否列印上一張內容,預設開啟
參數:enable 是否使能
返回值:無
}
procedure addReprint(enable: TCCGPrinter_EscCommand_ENABLE);
2
3
4
5
6
# 5.2.2.1.30. addPrintKey方法
{
功能:設定是否按走紙鍵列印最近一張標籤
參數:enable 是否使能
返回值:無
}
procedure addPrintKey(enable: TCCGPrinter_EscCommand_ENABLE);
2
3
4
5
6
# 5.2.2.1.31. addPrintKeyM方法
{
功能:設定按走紙鍵列印最近一張標籤的份數
參數:m:列印份數
返回值:無
}
procedure addPrintKeyM(m: Integer);
2
3
4
5
6
# 5.3. 參數說明
以下是TfxGPPrinter元件使用到的列舉型別
//錢箱引腳號
TCCGPrinter_LabelCommand_FOOT = (FOOT_F2, FOOT_F5);
//列印速度
TCCGPrinter_LabelCommand_SPEED = (SPEED1DIV5, SPEED2, SPEED3, SPEED4);
//列印濃度
TCCGPrinter_LabelCommand_DNESITY = (DNESITY0, DNESITY1, DNESITY2, DNESITY3,DNESITY4,
DNESITY5, DNESITY6, DNESITY7, DNESITY8, DNESITY9, DNESITY10,DNESITY11, DNESITY12, DNESITY13, DNESITY14, DNESITY15);
//列印方向
TCCGPrinter_LabelCommand_DIRECTION = (DIRECTION_FORWARD(向前), DIRECTION_BACKWARD(向後));
//列印映象
TCCGPrinter_LabelCommand_MIRROR = (MIRROR_NORMAL(正常), MIRROR_MIRROR(映象));
//國際內碼表
TCCGPrinter_LabelCommand_CODEPAGE = (PC437, PC850, PC852, PC860, PC863, PC865,WPC1250, WPC1252, WPC1253, WPC1254);
//一維條碼型別
TCCGPrinter_LabelCommand_BARCODETYPE = (CODE128, CODE128M, EAN128, ITF25,
ITF25C, CODE39, CODE39C, CODE39S, CODE93, EAN13, EAN13_2, EAN13_5, EAN8,
EAN8_2, EAN8_5, CODABAR, POST, UPCA, UPCA_2, UPCA_5, UPCE, UPCE_2, UPCE_5,
CPOST, MSI, MSIC, PLESSEY, ITF14, EAN14);
//是否列印可識別字符
TCCGPrinter_LabelCommand_READABEL = (DISABLE, EANBEL);
//旋轉角度
TCCGPrinter_LabelCommand_ROTATION = (ROTATION_0, ROTATION_90, ROTATION_180,
ROTATION_270);
//點陣圖模式
TCCGPrinter_LabelCommand_BITMAP_MODE = (BITMAP_MODE_OVERWRITE(覆蓋), BITMAP_MODE_OR, BITMAP_MODE_XOR);
//字型型別
TCCGPrinter_LabelCommand_FONTTYPE = (FONT_1, FONT_2, FONT_3, FONT_4, FONT_5,FONT_6, FONT_7, FONT_8, FONT_9,
FONT_10, SIMPLIFIED_CHINESE,TRADITIONAL_CHINESE, KOREAN);
//放大係數
TCCGPrinter_LabelCommand_FONTMUL = (MUL_1, MUL_2, MUL_3, MUL_4, MUL_5, MUL_6,
MUL_7, MUL_8, MUL_9, MUL_10);
//糾錯級別
TCCGPrinter_LabelCommand_EEC = (LEVEL_L, LEVEL_M, LEVEL_Q, LEVEL_H);
//是否可用
TCCGPrinter_EscCommand_ENABLE = (ENABLE_ON, ENABLE_OFF);
TCCGPrinter_EscCommand_JUSTIFICATION = (LEFT, CENTER, RIGHT);
TCCGPrinter_EscCommand_FONT = (FONTA, FONTB);
TCCGPrinter_EscCommand_ErrorCorrectionLevelForQRCode=(QRCodeLEVEL_L=$30,QRCodeLEVEL_M=$31,QRCodeLEVEL_Q=$32,QRCodeLEVEL_H=$33);
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
# 5.4. 示例
通過TfxGPPrinter元件,連線佳博藍芽標籤印表機,實現列印功能。
依照下圖,建立一個窗體。
- 具體實現如下:
//連線藍芽標籤印表機
Procedure fxButton1OnClick(Sender: TObject);
Begin
AGPrinter.BluetoothMacAddress:='DC:0D:30:75:4B:6C'; //將藍芽地址賦值給控制元件
if AGPrinter.OpenPort then
showmessage('連線成功!')
else
showmessage('連線失敗!');
End;
//列印標籤
Procedure fxButton2OnClick(Sender: TObject);
var
ALabelCommand: TCCGPrinterLabelCommand;
fxXFVoiceIAT1:TfxButton;
Begin
ALabelCommand := TCCGPrinterLabelCommand.Create; //建立標籤列印對像
ALabelCommand.addCls; // 清除列印緩衝區數據
ALabelCommand.addSize(80, 60); // 設定標籤大小 mm
ALabelCommand.addGap(2); // 設定標籤間隙,按照實際尺寸設定,如果為無間隙紙則設定為0
ALabelCommand.addDirection(DIRECTION_FORWARD,MIRROR_NORMAL);
ALabelCommand.addReference(0, 0); // 設定原點座標
try
ALabelCommand.addText(8 * 2, 4 * 5,
SIMPLIFIED_CHINESE,
ROTATION_0, //旋轉
MUL_2, //
MUL_2, '姓名:愛招飛');
ALabelCommand.addText(8 * 2, 4 * 15,
SIMPLIFIED_CHINESE,
ROTATION_0,
MUL_1,
MUL_1, '性別:男');
ALabelCommand.addText(8 * 2, 4 * 25,
SIMPLIFIED_CHINESE,
ROTATION_0,
MUL_1,
MUL_1, '年齡:99歲');
ALabelCommand.add1DBarcode(8 * 2, 4 * 35,
CODE128, 8 * 12,
EANBEL,
ROTATION_0, '18658867688');
ALabelCommand.addQRCode(8 * 20, 4 * 45,
LEVEL_L, 5,
ROTATION_0, 'PinToo(拼圖) 二維碼');
Finally
ALabelCommand.addPrint(1,1); // 設定列印份數
ALabelCommand.addSound(2, 100); // 設定蜂鳴器
// 發送列印標籤命令
AGPrinter.sendLabelCommand(ALabelCommand);
ALabelCommand.Free;
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
43
44
45
46
47
48
49
50
51
52
53
- 標籤
# 6. TfxNFC
- 引用單元 CCNFC
TfxNFC是一個NFC元件,可以通過該元件讀取NFC資訊。
# 6.1. 方法(Methods)
- TfxNFC元件主要方法
方法 | 功能說明 |
---|---|
IsNFCUse | 判斷設備是否支援NFC功能 |
IsNFCEnabled | 判斷設備是否啟用NFC功能 |
readNfcTagText | 讀取NFC資訊 |
# 6.2. 事件(Events)
- TfxNFC元件主要事件
事件 | 何時觸發 |
---|---|
onTagText | 當檢測到NFC時觸發並反饋回NFC資訊 |
# 6.2.1. onTagText事件
property onTagText: TOnTagText read FOnTagText write SetOnTagText;
當檢測到NFC時觸發並反饋回NFC資訊。
# 6.3. 示例
//手動讀取NFC資訊
Procedure fxButton1OnClick(Sender: TObject);
Begin
fxMemo1.Lines.Add('NFC Value: '+fxNFC1.readNfcTagText);
End;
//自動感應NFC並讀取資訊
Procedure fxNFC1onTagText(ASender: TObject; ATagText: string);
Begin
fxMemo1.Lines.Add('NFC Value: '+ATagText);
End;
//判斷設備是否支援NFC功能
Procedure fxButton2OnClick(Sender: TObject);
Begin
if fxNFC1.IsNFCUse Then
Showmessage('設備支援NFC功能!')
else
Showmessage('設備不支援NFC功能!')
End;
//判斷設備NFC功能是否開啟
Procedure fxButton3OnClick(Sender: TObject);
Begin
if fxNFC1.IsNFCEnabled Then
Showmessage('設備已開啟NFC!')
else
Showmessage('設備已未開啟NFC!')
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
# 7. TfxSdkCommLib
- 引用單元 CCSdkCommLib
呼叫安卓原生庫。
您可以通過TfxSdkCommLib元件來呼叫安卓原生庫的功能,如撥打電話、發送簡訊、開關WIFI等。
# 7.1. 屬性(Properties)
- TfxSdkCommLib元件主要方法
屬性 | 功能說明 |
---|---|
getDeviceId | 獲取設備唯一ID |
isGpsEnabled | 判斷GPS是否打開 |
openGPSSettings | 打開GPS設定界面 |
setGPSEnabled | 打開或關閉GPS |
hasSDCard | 是否有SD卡 |
sendMessageDirectly | 直接發送簡訊 |
sendMessage | 調出發送簡訊界面,發送簡訊 |
callPhones | 直接撥打電話 |
dialPhones | 調出撥號界面,撥打電話 |
openWifiSettings | 打開WIFI設定界面 |
isWifiEnabled | 判斷WIFI狀態 |
setWifiEnabled | 強制打開或關閉WIFI |
isWifiConnected | 判斷Wifi是否連線 |
openBlueToothSettings | 打開藍芽設定 |
isBluetoothSupported | 判斷手機是否支援藍芽 |
isBluetoothEnabled | 判斷藍芽狀態 |
turnOnBluetooth | 強制打開藍芽 |
turnOffBluetooth | 強制關閉藍芽 |
openApn | 打開APN設定界面 |
vibrator | 呼叫手機震動 |
# 7.1.1. getDeviceId方法
function getDeviceId: string;
獲取設備唯一ID。
var
v:string:
begin
v := fxSdkCommLib1.getDeviceId;
end;
2
3
4
5
# 7.1.2. isGpsEnabled方法
function isGpsEnabled: Boolean;
判斷設備GPS是否打開 。
# 7.1.3. openGPSSettings方法
procedure openGPSSettings;
打開設備GPS設定界面。
if not fxSdkCommLib1.isGpsEnabled then
begin
showmessage('GPS狀態:關閉!');
end
else
begin
showmessage('GPS狀態:打開!');
end;
2
3
4
5
6
7
8
# 7.1.4. setGPSEnabled方法
procedure setGPSEnabled(AGPSEnabled: Boolean);
打開或關閉GPS。
//強制打開GPS
fxSdkCommLib1.setGPSEnabled(True);
//強制關閉GPS
fxSdkCommLib1.setGPSEnabled(false);
2
3
4
# 7.1.5. hasSDCard方法
function hasSDCard: Boolean;
判斷設備是否有SD卡。
if not fxSdkCommLib1.hasSDCard then
begin
showmessage('沒有SD卡!悠著點!');
end
else
begin
showmessage('有SD卡!該你任性!');
end;
2
3
4
5
6
7
8
# 7.1.6. sendMessageDirectly方法
procedure sendMessageDirectly(phoneNumber: String; smsContent: String);
指定一個號碼,直接發送簡訊。
fxSdkCommLib1.sendMessageDirectly('18688889999', '歡迎使用這是PinToo');
# 7.1.7. sendMessage方法
procedure sendMessage(phoneNumber: String; smsContent: String);
調出發送簡訊界面,發送簡訊。
fxSdkCommLib1.sendMessage('18688889999', '歡迎使用這是PinToo!');
# 7.1.8. callPhones方法
procedure callPhones(phoneNumber: String);
指定一個號碼,直接撥打電話。
fxSdkCommLib1.callPhones('18688889999');
# 7.1.9. dialPhones方法
procedure dialPhones(phoneNumber: String);
調出撥號界面,撥打電話。
fxSdkCommLib1.dialPhones('18688889999');
# 7.1.10. openWifiSettings方法
procedure openWifiSettings;
打開設備WIFI設定界面。
fxSdkCommLib1.openWifiSettings;
# 7.1.11. isWifiEnabled方法
function isWifiEnabled: Boolean;
判斷設備WIFI連線狀態。
if not fxSdkCommLib1.isWifiEnabled then
begin
showmessage('Wifi狀態:關閉!');
end
else
begin
showmessage('Wifi狀態:打開!');
end;
2
3
4
5
6
7
8
# 7.1.12. setWifiEnabled方法
procedure setWifiEnabled(AWifiEndabled: Boolean);
強制打開或關閉WIFI。
//強制打開WIFI
fxSdkCommLib1.setWifiEnabled(True);
//強制關閉WIFI
fxSdkCommLib1.setWifiEnabled(false);
2
3
4
# 7.1.13. isWifiConnected方法
function isWifiConnected: Boolean;
判斷設備Wifi是否連線。
if not fxSdkCommLib1.isWifiConnected then
begin
showmessage('Wifi沒有連線!');
end
else
begin
showmessage('Wifi已連線!');
end;
2
3
4
5
6
7
8
# 7.1.14. openBlueToothSettings方法
procedure openBlueToothSettings;
打開藍芽設定。
# 7.1.15. isBluetoothSupported方法
function isBluetoothSupported: Boolean;
判斷設備是否支援藍芽。
# 7.1.16. isBluetoothEnabled方法
function isBluetoothEnabled: Boolean;
判斷設備藍芽狀態。
if not fxSdkCommLib1.isBluetoothSupported then
begin
showmessage('蒐集不支援藍芽!');
end
else
begin
showmessage('手機支援藍芽!');
end;
2
3
4
5
6
7
8
# 7.1.17. turnOnBluetooth方法
function turnOnBluetooth: Boolean;
強制打開藍芽。
fxSdkCommLib1.turnOnBluetooth;
# 7.1.18. turnOffBluetooth方法
procedure turnOffBluetooth;
強制關閉藍芽。
fxSdkCommLib1.turnOffBluetooth;
# 7.1.19. openApn方法
procedure openApn;
打開APN設定界面。
fxSdkCommLib1.openApn;
# 7.1.20. vibrator方法
procedure vibrator(AMilliseconds: Int64 = 1000);
呼叫手機震動。
//震動五秒
fxSdkCommLib1.vibrator(5000);
2
# 8. TfxSignaturePad
- 引用單元 CCSignaturePad
一個手寫板簽名元件。
你可以通過TfxSignaturePad來實現電子簽名功能。
# 8.1. 屬性(Properties)
- TfxSignaturePad元件主要屬性
屬性 | 功能說明 |
---|---|
SignatureBitmap | 手寫簽名圖 |
# 8.1.1. SignatureBitmap屬性
手寫簽名圖,手寫簽名完成時,影象儲存在這個屬性中。
//將簽名圖顯示在圖片元件
fximage1.Bitmap := fxSignaturePad1.SignatureBitmap;
2
# 8.2. 方法(Methods)
- TfxSignaturePad元件主要方法
方法 | 功能說明 |
---|---|
Clear | 清除簽名 |
# 8.2.1. Clear方法
清除手寫簽名圖。
//清除簽名
fxSignaturePad1.clear;
2
# 9. TfxXFVoiceTTS
- 引用單元 CCXFVoiceTTS
TfxXFVoiceTTS是一個基於訊飛技術的可以將語音轉換成文字的元件。
# 9.1. 屬性(Properties)
- TfxXFVoiceIAT元件主要屬性
屬性 | 功能說明 |
---|---|
AppId | 指定訊飛AppId |
Lag | 指定語音口音 |
# 9.1.1. AppId屬性
AppId是一個必要的屬性,它需要到訊飛官方申請。https://www.iflyrec.com/
# 9.1.2. Lag屬性
Lag是指語音的口音型別,預設為mandarin(標準普通話)。
# 9.2. 事件(Events)
*TfxXFVoiceIAT元件主要事件
事件 | 何時觸發 |
---|---|
OnRecognizerResult | 語音識別成功后觸發 |
# 9.2.1. OnRecognizerResult事件
語音識別成功返回文字內容。
Procedure fxXFVoiceIAT1OnRecognizerResult(Sender: TObject; AResult: string);
Begin
fxmemo1.Lines.Add(AResult);
End;
2
3
4
# 9.3. 方法(Methods)
- TfxXFVoiceIAT元件主要方法
方法 | 功能說明 |
---|---|
IAT_StartListening | 開始監聽語音 |
IAT_StopListening | 停止語單識別 |
IAT_Cancel | 取消語音識別 |
IAT_UploadContacts | 上傳聯繫人 |
IAT_UploadUserwords | 上傳詞條 |
# 9.3.1. IAT_StartListening方法
procedure IAT_StartListening;overload;
procedure IAT_StartListening(ACallbackProc: TProc<System.string>);overload;
2
執行此方法,設備麥克風會監聽我們說出來的語音,然後將語音轉換為文字內容。
fxXFVoiceIAT1.IAT_StartListening(Nil);
# 9.3.2. IAT_StopListening方法
procedure IAT_StopListening;
執行此方法,停止語音識別。
fxXFVoiceIAT1.IAT_StopListening;
# 9.3.3. IAT_Cancel方法
procedure IAT_Cancel;
執行此方法,取消語音識別。
fxXFVoiceIAT1.IAT_Cancel;
# 9.3.4. IAT_UploadContacts方法
procedure IAT_UploadContacts;
上傳聯繫人、詞表,可以使雲端識別聯繫人和詞表更加準確,這裡上傳的內容對語義理解同樣有效。
fxXFVoiceIAT1.IAT_UploadContacts;
# 9.3.5. IAT_UploadUserwords方法
procedure IAT_UploadUserwords(Userwords: string);
上傳聯繫人、詞表,可以使雲端識別聯繫人和詞表更加準確,這裡上傳的內容對語義理解同樣有效。
fxXFVoiceIAT1.IAT_UploadUserwords('{"userword":[{"name":"我的常用詞","words":["佳晨實業","蜀南庭苑","高蘭路","復聯二"]}]}');
# 10. TfxXFVoiceIAT
- 引用單元 CCXFVoiceIAT
TfxXFVoiceTTS是一個基於訊飛技術的可以將文字轉換成語音的元件。
# 10.1. 屬性(Properties)
- TfxXFVoiceIAT元件主要屬性
屬性 | 功能說明 |
---|---|
AppId | 指定訊飛AppId |
Voicer | 指定語音型別 |
# 10.1.1. AppId屬性
AppId是一個必要的屬性,它需要到訊飛官方申請。https://www.iflyrec.com/
# 10.1.2. Voicer屬性
Voicer屬性是指定文字轉換成語音后,以什麼語音型別播放。
- 語音型別如下:
型別 | 說明 |
---|---|
xiaoyan | 小燕 青年女聲 中英文(普通話) 預設 |
xiaoyu | 小宇 青年男聲 中英文(普通話) |
catherine | 凱瑟琳 青年女聲 英文 |
henry | 亨利 青年男聲 英文 |
vimary | 瑪麗 青年女聲 英文 |
vixy | 小研 青年女聲 中英文(普通話) |
xiaoqi | 女聲 中英文(普通話) |
vixf | 小峰 青年男聲 中英文(普通話) |
xiaomei | 小梅 青年女聲 中英文(粵語) |
vixl | 小莉 青年女聲 中英文(臺灣普通話) |
xiaolin | 曉琳 青年女聲 中英文(臺灣普通話) |
xiaorong | 小蓉 青年女聲 漢語(四川話) |
vixyun | 小蕓 青年女聲 漢語(東北話) |
xiaoqian | 小倩 青年女聲 漢語(東北話) |
xiaokun | 小坤 青年男聲 漢語(河南話) |
xiaoqiang | 小強 青年男聲 漢語(湖南話) |
vixying | 楠楠 童年女聲 漢語(普通話) |
xiaoxin | 楠楠 童年女聲 漢語(普通話) |
nannan | 楠楠 童年女聲 漢語(普通話) |
vils | 老孫 老年男聲 漢語(普通話) |
Mariane | Mariane 法語 |
Allabent | Allabent 俄語 |
Gabriela | Allabent 俄語 |
Abha | Abha 印地語 |
XiaoYun | Abha 印地語 |
# 10.2. 方法(Methods)
- TfxXFVoiceIAT元件主要方法
方法 | 功能說明 |
---|---|
TTS_Play | 朗讀 |
TTS_Cancel | 取消播放 |
TTS_Pause | 暫停播放 |
TTS_Resume | 恢復播放 |
# 10.2.1. TTS_Play方法
{
功能:文字轉語音播放
參數:ATTS_Text 需要轉換為語音的文字內容
}
procedure TTS_Play(ATTS_Text: string);
2
3
4
5
# 10.3. 示例
fxXFVoiceTTS1.AppId := '指定一個AppId';
fxXFVoiceTTS1.Voicer := 'xiaomei'; //指定語音型別
fxXFVoiceTTS1.TTS_Play('我是中國人!');
2
3
# 11. TfxScrollText元件
- 引用單元 CCScrollText
一個滾動字幕元件。
# 11.1. 示列
演示增加滾動字幕:
var
Li:TCCScrollTextItem;
begin
Li := fxScrollText1.Items.add;
Li.Text := '慶祝中華人民共和國成立70週年!';
Li := fxScrollText1.Items.add;
Li.Text := '中國人民萬歲!!!';
fxScrollText1.StartScroll;
end.
2
3
4
5
6
7
8
9
10
11
12
示例運行結果:
# 12. TfxWebView元件
- 引用單元 CC5WebView
一個Web瀏覽器,可以進行網頁瀏覽。
# 12.1. 示例
指定一個網址實現打開網頁的功能。
fxWebView1.loadURL('Http://www.baidu.com');
# 13. fxTbsVideoPlayer
- 引用單元 CCTbsVideoPlayer
視訊播放控制元件。
一行程式碼搞定播放: fxTbsVideoPlayer1.openVideo('rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov');
播放器同時支援頁面,小窗,全屏播放體驗,強大的解碼能力,包括mp4,rmvb,flv,avi等26種視訊格式支援。
TBS播放器的播放場景不僅侷限於H5頁面播放,也可以接入一般的視訊流鏈接,比如本地檔案,網路的視訊流鏈接。
示例
//播放MP4
CCTbsVideoPlayer1.openVideo('http://39.107.118.131/uploads/Doc/leijia1.mp4');
//RTSP協議直播源
CCTbsVideoPlayer1.openVideo('rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov');
//CCTV6高清
CCTbsVideoPlayer1.openVideo('http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8');
//rtmp直播
CCTbsVideoPlayer1.openVideo('rtmp://47.52.36.155:8090/kk2/kkvideocg88');
2
3
4
5
6
7
8
# 14. TfxFlying
- 引用單元 Flying
TfxFlying元件是配合Flying使用的元件,將必要的列印配置傳遞給該元件的屬性,執行元件的方法即可將數據傳遞至列印伺服器進行列印操作。在使用該元件前請先閱讀Flying使用手冊。
# 14.1. 屬性
# 14.1.1. HTTPOptions
使用 HTTP 列印模式時使用的屬性選項。其中的相關屬性專案說明如下:
屬性 | 說明 |
---|---|
Host | Flying列印服務端地址 |
Port | Flying HTTP/WebSocket 列印服務監聽的埠號 |
# 14.1.2. MailOptions
郵件相關設定選項。
屬性 | 說明 |
---|---|
Addr | 接收郵箱的地址 |
Body | 郵件的正文內容 |
Enable | 是否啟用郵件發送的功能 |
Subject | 郵件的標題 |
# 14.1.3. MQTTOptions
使用 MQTT 列印模式時使用的屬性選項。其中的相關屬性專案說明如下:
屬性 | 說明 |
---|---|
BrokerHost | MQTT 服務端的地址 |
BrokerPort | MQTT 服務端服務監聽的埠號 |
Enabled | 設定是否啟用 MQTT 連線 |
PrintPwd | 列印的密碼 |
PrintTopic | 列印服務訂閱的主題名稱 |
UserName | MQTT 服務的使用者名稱 |
UserPwd | MQTT 服務的密碼 |
# 14.1.4. PrintOptions
列印服務的相關設定項。
屬性 | 說明 |
---|---|
Data | 輸入的列印數據,可通過 AddPrintData 方法自動產生 |
ExportFileType | 設定導出的檔案型別 |
ExportFileUrl | 設定導出檔案的URL |
Preview | 設定是否啟用檔案預覽 |
PrintCopies | 設定檔案的列印份數 |
PrinterName | 設定印表機的名稱,可通過 GetPrinerList 方法獲取印表機名稱 |
PrintOffsetX | 列印偏移 X |
PrintOffsetY | 列印偏移 Y |
PrintType | 設定列印模式,可選 HTTP 、MQTT 、WebSocket |
ReportName | 設定列印的報表模板的名稱,可指定報表模板的檔名(*.fr3 )或者報表模板的別名 |
ReportUrl | 設定列印的報表的輸出地址 |
ReportVersion | 報表版本號 |
TaskID | 列印的任務ID,設定此項可用於區分不同列印客戶端的列印請求 |
Token | 令牌,可用於列印客戶端的身份認證 |
# 14.1.5. WebSocketOptions
使用 WebSocket 進行列印時的設定項。
屬性 | 說明 |
---|---|
Authentication | 是否啟用 WebSocket 身份認證 |
Compressed | 是否啟用數據壓縮 |
Enabled | 是否啟用 WebSocket 通訊連線 |
Host | WebSocket 連線的主機的地址(Flying 服務端的地址) |
Password | WebSocket 使用身份認證連線時使用的密碼 |
Port | WebSocket 服務監聽的埠號 |
SSL | 是否啟用 SSL 連線 |
SSLPort | 啟用SSL 連線時監聽的 WebSocket 服務埠號 |
URL | WebSocket 服務路徑 |
UserName | WebSocket 使用身份認證連線時使用的使用者名稱稱 |
# 14.2. 事件
# 14.2.1. OnReceivedError事件
procedure FlyingOnReceivedError(ASender: TObject; AError:String);
當列印過程中出現錯誤時,可觸發此事件。AError
中包含了錯誤的提示資訊。
# 14.2.2. OnReceivedExport事件
procedure FlyingOnReceivedExport(ASender: TObject; AUrl:String);
當列印包含輸出的檔案時觸發事件,AUrl
中包含了輸出檔案的路徑。
# 14.2.3. OnReceviedPrinter事件
procedure FlyingOnReceivedExport(ASender: TObject; APrinterList:String);
當Flying 向客戶端發送印表機列表的資訊時觸發事件。APrinterList
中包含了印表機列表等資訊。
# 14.3. 方法(Methods)
- TfxFlying元件主要方法
方法 | 功能說明 |
---|---|
GetPrinterList | 獲取Flying中介軟體的印表機列表 |
ReportPrint | 直接列印 |
ReportPreview | 報表預覽 |
AddPrintData | 列印數據組裝 |
# 14.3.1. GetPrinterList方法
procedure GetPrinterList;
獲取Flying中介軟體所在電腦上的印表機列表,供客戶端列印報表時選擇。使用的方式見下方。在呼叫該方法后,會在OnReceived事件中看到獲取的印表機列表地址。
//獲取印表機列表
Procedure btnGetPrintListOnClick(Sender: TObject);
Begin
fxFlying1.GetPrinterList;
End;
Procedure fxFlying1OnReceivedPrinter(Sender: TObject; APrinterList: string);
Begin
fxComboboxList.Items.CommaText := APrinterList;
if fxComboBoxList.Items.Count <> 0 Then
fxComboBoxList.ItemIndex := 0;
fxComboBoxList.DropDown;
End;
2
3
4
5
6
7
8
9
10
11
12
13
# 14.3.2. ReportPrint方法
procedure ReportPrint;
ReportPrint方法是呼叫Flying中介軟體,進行報表列印。
Procedure fxSuperButtonPrintOnClick(Sender: TObject);
//列印
//Print
Begin
if fxcomboboxList.Count = 0 Then exit;
fxFlying1.PrintOptions.PrinterName := fxcomboboxList.Items[fxcomboboxList.ItemIndex];
fxRFDataSet1.SQL.Text := 'SELECT * FROM Basic_Unit';
fxRFDataSet1.OpenData;
fxRFDataSet1.PrintOptions.Data.Clear;
fxFlying1.AddPrintData(fxRFDataSet1,'A');
fxFlying1.ReportPrint;
end;
Procedure fxFlying1OnReceivedExport(Sender: TObject; AUrl: string);
Begin
fxShowFileView(Self.GetMsgLang('preview'),AUrl,'',Self.GetMsgLang('cancel'),Self.GetMsgLang('OK'))
End;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 14.3.3. ReportPreview方法
procedure ReportPreview;
ReportPreview方法是呼叫Flying中介軟體,進行報表輸出,並回傳到客戶端顯示。
Procedure fxSuperButtonPreviewOnClick(Sender: TObject);
//預覽
//Preview
Begin
fxRFDataSet1.Connection := fxdm.DBConnection;
fxRFDataSet1.SQL.Text := 'SELECT * FROM Basic_Unit';
fxRFDataSet1.openData;
fxRFDataSet1.PrintOptions.Data.Clear;
fxFlying1.AddPrintData(fxRFDataSet1,'A');
fxFlying1.ReportPreview;
End;
Procedure fxFlying1OnReceivedExport(Sender: TObject; AUrl: string);
Begin
fxShowFileView(Self.GetMsgLang('preview'),AUrl,'',Self.GetMsgLang('cancel'),Self.GetMsgLang('OK'))
End;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 14.3.4. PrintPdf方法
procedure PrintPdf(AUrl: String);
從網路地址獲取 PDF 檔案併發送至 Flying 服務端執行列印。
# 14.3.5. PrintPic方法
procedure PrintPic(AUrl: String);
從網路地址獲取圖片檔案併發送至 Flying 服務端執行列印。
# 15. TfxDateTimePickerTheme
- 引用單元 CCDateTimePickerTheme
TfxDateTimePickerTheme是配合TfxDateEdit
元件進行日期選擇對話方塊樣式的控制。
通過設定DialogTheme
屬性完成主題的設定。
# 16. TfxVideoClient
- 引用單元 uVideoClient
TfxVideoClient是一個視訊串流客戶端元件,用來捕獲網路攝像頭視訊流並轉化成視訊。
TfxVideoClient有三個重要屬性分別是:CamType
攝像頭型別,Url
攝像頭網終地址,Active
啟用。
- CamType屬性說明
- ctESP32_CAM:ESP32-CAM攝像頭
- ctCAM:非ESP32-CAM攝像頭
Begin
fxVideoClient1.Url :='http://192.168.1.115'; //攝像頭網路地址
fxVideoClient1.Active := true;//啟用控制元件
End;
2
3
4
# 17. TfxDeviceInfo
- 引用單元 CCDeviceInfo
TfxDeviceInfo是一個獲取手機資訊的元件,可以獲取手機IMEI和IMSI資訊。
Begin
Showmessage(fxDeviceInfo1.IMEI);//手機序列號
Showmessage(fxDeviceInfo1.IMSI);//SIM卡串號
End;
2
3
4
# 18. TfxVideoServer
- 引用單元 uVideoClient、uVideoStream
TfxVideoServer 是一個視訊服務元件,用於拍攝視訊並進行實時直播。
# 18.1. 屬性
屬性 | 功能說明 |
---|---|
CameraComponent | 指定使用的相機元件,元件的型別為 TfxCameracomponent |
ComboBoxResolution | 指定解析度選擇的下拉框元件,元件的型別為 TfxComboBox |
FlashMode | 指定閃光燈模式 |
FocusMode | 指定相機對焦的模式 |
ImageViewer | 指定圖片的檢視元件,元件型別為 TfxImage |
Port | 設定視訊檢視的埠 |
Quality | 設定視訊的畫質 |
# 18.2. 方法
# 18.2.1. Start
procedure Start;
開啟視訊服務。
# 18.2.2. Stop
procedure Stop;
停止視訊服務。
# 18.2.3. TakePicture
function TakePicture: String;
拍攝截圖,返回截圖所在的位置。
# 19. TfxVideoRecorder
- 引用單元 uVideoClient、uVideoStream
TfxVideoRecorder 是一個視訊服務與錄製元件,用於拍攝視訊、錄製視訊與實時直播。
# 19.1. 屬性
屬性 | 功能說明 |
---|---|
Active | 是否啟用啟用元件 |
CameraIndex | 指定使用的相機序號 |
CaptureRate | 設定視訊捕捉的幀率 |
FlashMode | 指定閃光燈的模式 |
FocusMode | 指定相機對焦的模式 |
MaxDuration | 指定視訊的最長持續時間,如設定為0表示不限定持續時間 |
MaxFileSize | 指定最大的檔案大小,如設定為0表示不進行限定 |
OutputFile | 指定輸出的檔案所在的目錄以及名稱,不設定則使用預設的設定進行儲存 |
Port | 設定視訊檢視的埠 |
PreviewControl | 設定預覽的控制元件名稱 |
Profile | 設定視訊預設的畫質 |
VideoEncodingBitRate | 設定編碼位元率 |
VideoFrameRate | 設定編碼的幀率 |
VideoRecord | 是否啟用視訊錄製的功能 |