156 lines
4.1 KiB
ObjectPascal
156 lines
4.1 KiB
ObjectPascal
unit uCodeConent;
|
|
|
|
interface
|
|
|
|
uses
|
|
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
|
|
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,
|
|
System.ImageList, FMX.ImgList, FMX.Controls.Presentation, FMX.Edit,uTcpDevice,
|
|
FMX.Layouts, System.Rtti, FMX.Grid.Style, FMX.Memo, FMX.ScrollBox, FMX.Grid,
|
|
Winapi.Windows, uDM,uShowInfo, FMX.StdCtrls,uKsoap,uSafeLog,Winapi.ActiveX,
|
|
System.StrUtils, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
|
|
IdHTTP, REST.Types, Data.Bind.Components, Data.Bind.ObjectScope, REST.Client,
|
|
FMX.Memo.Types;
|
|
|
|
type
|
|
TfrmCodeConent = class(TForm)
|
|
Rectangle1: TRectangle;
|
|
ImageList1: TImageList;
|
|
Rectangle18: TRectangle;
|
|
Rectangle19: TRectangle;
|
|
Rectangle20: TRectangle;
|
|
Text7: TText;
|
|
Rectangle26: TRectangle;
|
|
Text17: TText;
|
|
Rectangle33: TRectangle;
|
|
Rectangle5: TRectangle;
|
|
Rectangle35: TRectangle;
|
|
Text21: TText;
|
|
Rectangle8: TRectangle;
|
|
Rectangle10: TRectangle;
|
|
Rectangle12: TRectangle;
|
|
Memo1: TMemo;
|
|
Text4: TText;
|
|
Text5: TText;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure Rectangle19Click(Sender: TObject);
|
|
private
|
|
procedure F2DCodeWork(Sender: TObject;sValue: string);
|
|
procedure F2DCodeShowState(Avalue: string); //显示读头状态
|
|
procedure AddLog(sLog:string);
|
|
{ Private declarations }
|
|
public
|
|
iDetailCount:Integer;
|
|
iCount:Integer;
|
|
vP_ID:Double;
|
|
vId:integer;
|
|
F2DCode: T2DCode;
|
|
Rfid:TRfid;
|
|
NumEnce:TNumEnce;
|
|
LotNoRecord:TLotNoRecord;
|
|
F2DCodeValue:String;
|
|
end;
|
|
|
|
var
|
|
frmCodeConent: TfrmCodeConent;
|
|
|
|
implementation
|
|
|
|
{$R *.fmx}
|
|
|
|
uses uPucFun, uMain, uErrorInfo, IdGlobal; //609104 , uAlarmLed
|
|
|
|
procedure TfrmCodeConent.AddLog(sLog:string);
|
|
begin
|
|
if Memo1.Lines.Count>100 then
|
|
Memo1.Lines.Delete(0);
|
|
Memo1.Lines.Add(FormatDateTime('yyyymmdd hh:mm:ss.zzz ',Now)+sLog);
|
|
Memo1.SelStart:=Length(Memo1.Text);
|
|
Memo1.SelLength:=0;
|
|
end;
|
|
|
|
procedure TfrmCodeConent.F2DCodeShowState(Avalue: string); //显示读头状态
|
|
begin
|
|
AddLog(Avalue);
|
|
end;
|
|
|
|
procedure TfrmCodeConent.F2DCodeWork(Sender:TObject;sValue: string); //读取条码
|
|
begin
|
|
AddLog('条码读取成功:'+sValue);
|
|
F2DCodeValue:= sValue;
|
|
Close;
|
|
end;
|
|
|
|
procedure TfrmCodeConent.FormCreate(Sender: TObject);
|
|
var
|
|
sDevName,sIp,sPort:string;
|
|
tmpValue:string;
|
|
i_F2DCode:integer;
|
|
begin
|
|
Self.width:= 500;
|
|
Self.height:=400;
|
|
Memo1.Lines.Clear;
|
|
i_F2DCode:= 0;
|
|
// TxtShowErrorInfo(TxtError,'');
|
|
|
|
|
|
//根据配置加载设备
|
|
// for i := 1 to 1 do
|
|
begin
|
|
tmpValue:=dm.MemTableReadKeyValue('读头','tv_line_speed1');
|
|
if tmpValue<>'' then
|
|
begin
|
|
if CheckParameter(tmpValue,sDevName,sIp,sPort) then
|
|
begin
|
|
if sameText(sDevName.ToLower,'keyence') then //1、2D读头 ,2、鏡板、板翹读头
|
|
begin
|
|
// inc(i_F2DCode);
|
|
F2DCode:=T2DCode.Create(sIp,sPort.ToInteger);
|
|
try
|
|
F2DCode.Num:=1;
|
|
F2DCode.OnWork:=F2DCodeWork;
|
|
F2DCode.OnShowState:=F2DCodeShowState;
|
|
F2DCode.Connect;
|
|
except
|
|
workLog.Error('TfrmCodeConent.FormCreate');
|
|
end;
|
|
TThread.CreateThreadX<Integer>(
|
|
procedure (Avalue:Integer)
|
|
begin
|
|
Sleep(1000);
|
|
TThread.Synchronize( nil,
|
|
procedure
|
|
begin
|
|
F2DCode.Open;
|
|
end
|
|
);
|
|
end,1
|
|
).Start;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmCodeConent.FormDestroy(Sender: TObject);
|
|
//var
|
|
// i:integer;
|
|
begin
|
|
begin
|
|
if F2DCode<>nil then
|
|
begin
|
|
F2DCode.Close;
|
|
Sleep(200);
|
|
FreeandNil(F2DCode);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmCodeConent.Rectangle19Click(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
end.
|