⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.pas

📁 Barcode reader of all barcode reader mechine
💻 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 + -