📄 mainfrm.pas
字号:
unit MainFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, StrUtils;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
BarSn: TEdit;
MainSn: TEdit;
Label3: TLabel;
Adapter: TEdit;
Shape1: TShape;
Shape2: TShape;
Shape3: TShape;
Panel1: TPanel;
function HeaderOfSerialNumber:String;
function WriteToSnXls:Boolean;
procedure FormCreate(Sender: TObject);
procedure BarSnKeyPress(Sender: TObject; var Key: Char);
procedure AdapterKeyPress(Sender: TObject; var Key: Char);
procedure MainSnKeyPress(Sender: TObject; var Key: Char);
procedure BarSnChange(Sender: TObject);
procedure AdapterChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
BarOK,MainSnOK,AdapterOK : Boolean;
implementation
{$R *.dfm}
//------------------------------------------------------------------------------
function TForm1.HeaderOfSerialNumber:String;
var
temp : String;
begin
temp := 'BarCode Sn' + #9 + 'Adapter Sn' + #9 + 'PRK Code' + #9 + 'Time' ;
result := temp;
end;
//------------------------------------------------------------------------------
function TForm1.WriteToSnXls:Boolean;
var
Path : String;
F : TextFile;
str : String;
begin
Path := GetCurrentDir;
Path := Path+'\'+ DateToStr(Date) + ' SonySn.txt';
if not FileExists(path) then
begin
AssignFile(F,path);
Rewrite(F);
WriteLn(F,HeaderOfSerialNumber);
Closefile(F);
end;
begin
AssignFile(F,Path);
Append(F);
str := Form1.BarSn.Text + #9 + Form1.Adapter.Text + #9 + Form1.MainSn.Text
+ #9 + TimeToStr(Now);
WriteLn(F,str);
CloseFile(F);
result := true;
end;
end;
//------------------------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
Shape1.Brush.Color := clRed;
Shape2.Brush.Color := clRed;
Shape3.Brush.Color := clRed;
BarOK := false;
MainSnOK := false;
AdapterOK := false;
end;
//------------------------------------------------------------------------------
procedure TForm1.BarSnKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if not ((LeftStr(BarSn.Text,3) = 'S01') and (Length(BarSn.Text) = 11)) then
begin
ShowMessage('位数错误或者序列号错误,请重新读取序列号!');
BarSn.Clear;
Shape1.Brush.Color := clRed;
Adapter.Enabled := false;
exit;
end
else
begin
Shape1.Brush.Color := clGreen;
BarOK := true;
BarSn.ReadOnly := true;
Adapter.SetFocus;
end;
end;
end;
//------------------------------------------------------------------------------
procedure TForm1.AdapterKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','.',#13,#8,#10]) then //限制只能输入数字
begin
key:=#0;
ShowMessage('该序列号只能输入数字');
Adapter.Clear;
exit;
//Messagebeep(0);
end;
if Key = #13 then
begin
if not (Length(Adapter.Text) = 6) then
begin
ShowMessage('位数错误,请重新读取序列号!');
Adapter.Clear;
Shape2.Brush.Color := clRed;
MainSn.Enabled := false;
exit;
end
else
begin
Shape2.Brush.Color := clGreen;
AdapterOK := true;
Adapter.ReadOnly := true;
MainSn.SetFocus;
end;
end;
end;
//------------------------------------------------------------------------------
procedure TForm1.MainSnKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','.',#13,#8,#10]) then //限制只能输入数字
begin
key:=#0;
ShowMessage('该序列号只能输入数字');
MainSn.Clear;
exit;
//Messagebeep(0);
end;
if Key = #13 then
begin
if not (Length(MainSn.Text) = 24) then
begin
ShowMessage('位数错误,请重新读取序列号!');
MainSn.Clear;
Shape3.Brush.Color := clRed;
exit;
end
else
begin
Shape3.Brush.Color := clGreen;
MainSnOK := true;
if MainSnOK and BarOK and AdapterOK then
begin
WriteToSnXls;
BarSn.Clear;
MainSn.Clear;
Adapter.Clear;
Shape1.Brush.Color := clRed;
Shape2.Brush.Color := clRed;
Shape3.Brush.Color := clRed;
BarSn.ReadOnly := false;
Adapter.ReadOnly := false;
MainSn.ReadOnly := false;
MainSnOK := false;
BarOK := false;
AdapterOK := false;
BarSn.SetFocus;
MainSn.Enabled := false;
Adapter.Enabled := false;;
Panel1.Caption := 'Pass!';
Panel1.Color := clGreen;
end
else
begin
ShowMessage('请确认是否已读码OK?');
exit;
end;
end;
end;
end;
//------------------------------------------------------------------------------
procedure TForm1.BarSnChange(Sender: TObject);
begin
Adapter.Enabled := true;
Panel1.Color := clBtnFace;
Panel1.Caption := 'Ready';
end;
//------------------------------------------------------------------------------
procedure TForm1.AdapterChange(Sender: TObject);
begin
MainSn.Enabled := true;
end;
//------------------------------------------------------------------------------
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -