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

📄 unit1.pas

📁 用microsoft vb6.0写的上班考勤系统!
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Spin, ExtCtrls, ComCtrls, Menus, CheckLst, RXSpin;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    pagecontrol1: TPageControl;
    ts_common: TTabSheet;
    ts_real: TTabSheet;
    GroupBox3: TGroupBox;
    Memo1: TMemo;
    GroupBox1: TGroupBox;
    Memo2: TMemo;
    Splitter1: TSplitter;
    GroupBox4: TGroupBox;
    bt_query_s: TButton;
    bt_query_e: TButton;
    se_node_s: TSpinEdit;
    se_node_e: TSpinEdit;
    Label3: TLabel;
    Label4: TLabel;
    Panel3: TPanel;
    rg_comm: TRadioGroup;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    bt_opencomm: TButton;
    bt_handshake: TButton;
    se_node_addr: TSpinEdit;
    ed_password: TEdit;
    ts_para: TTabSheet;
    ts_record: TTabSheet;
    ts_author: TTabSheet;
    ts_timeauthor: TTabSheet;
    ts_timetable: TTabSheet;
    ts_modem: TTabSheet;
    Memo3: TMemo;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    se_usermode: TSpinEdit;
    se_rly1time: TSpinEdit;
    se_rly2time: TSpinEdit;
    CheckBox1: TCheckBox;
    se_times: TSpinEdit;
    se_node_addr1: TSpinEdit;
    Button12: TButton;
    Button13: TButton;
    Label8: TLabel;
    Label9: TLabel;
    Button14: TButton;
    GroupBox5: TGroupBox;
    Memo4: TMemo;
    Panel4: TPanel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    bt_get_curr: TButton;
    bt_get_next: TButton;
    bt_get_rec: TButton;
    se_recnum: TSpinEdit;
    bt_getallrecord: TButton;
    bt_getallrecord1: TButton;
    se_recnum_s: TSpinEdit;
    se_recnum_e: TSpinEdit;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    SaveDialog1: TSaveDialog;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    se_node_addr2: TSpinEdit;
    GroupBox6: TGroupBox;
    Memo5: TMemo;
    Panel5: TPanel;
    GroupBox8: TGroupBox;
    Label16: TLabel;
    Label17: TLabel;
    se_node_addr3: TSpinEdit;
    se_author_num: TSpinEdit;
    Button15: TButton;
    Button16: TButton;
    GroupBox7: TGroupBox;
    Label14: TLabel;
    Label15: TLabel;
    se_snr_s: TSpinEdit;
    se_snr_e: TSpinEdit;
    cb_author: TCheckBox;
    Button17: TButton;
    Panel6: TPanel;
    GroupBox9: TGroupBox;
    clb_timeseg1: TCheckListBox;
    clb_timeseg2: TCheckListBox;
    Label18: TLabel;
    Label19: TLabel;
    Button18: TButton;
    se_snr_s1: TSpinEdit;
    se_snr_e1: TSpinEdit;
    GroupBox10: TGroupBox;
    Label20: TLabel;
    Label21: TLabel;
    Button19: TButton;
    Button20: TButton;
    se_node_addr4: TSpinEdit;
    se_timeauthor_num: TSpinEdit;
    Memo6: TMemo;
    Panel7: TPanel;
    Button21: TButton;
    GroupBox11: TGroupBox;
    Memo7: TMemo;
    Button22: TButton;
    GroupBox12: TGroupBox;
    Label22: TLabel;
    dtp_1s: TDateTimePicker;
    dtp_1e: TDateTimePicker;
    dtp_2e: TDateTimePicker;
    dtp_2s: TDateTimePicker;
    Label23: TLabel;
    Label24: TLabel;
    dtp_3s: TDateTimePicker;
    dtp_3e: TDateTimePicker;
    dtp_4e: TDateTimePicker;
    dtp_4s: TDateTimePicker;
    Label25: TLabel;
    Label26: TLabel;
    dtp_5s: TDateTimePicker;
    dtp_5e: TDateTimePicker;
    dtp_6s: TDateTimePicker;
    Label27: TLabel;
    Label28: TLabel;
    dtp_7s: TDateTimePicker;
    Label29: TLabel;
    dtp_8s: TDateTimePicker;
    dtp_8e: TDateTimePicker;
    dtp_7e: TDateTimePicker;
    dtp_6e: TDateTimePicker;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Label33: TLabel;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    dtp_9s: TDateTimePicker;
    dtp_10s: TDateTimePicker;
    dtp_11s: TDateTimePicker;
    dtp_12s: TDateTimePicker;
    dtp_13s: TDateTimePicker;
    dtp_14s: TDateTimePicker;
    dtp_15s: TDateTimePicker;
    dtp_16s: TDateTimePicker;
    dtp_16e: TDateTimePicker;
    dtp_15e: TDateTimePicker;
    dtp_14e: TDateTimePicker;
    dtp_13e: TDateTimePicker;
    dtp_12e: TDateTimePicker;
    dtp_11e: TDateTimePicker;
    dtp_10e: TDateTimePicker;
    dtp_9e: TDateTimePicker;
    se_node_addr5: TSpinEdit;
    Label38: TLabel;
    Panel8: TPanel;
    GroupBox13: TGroupBox;
    Button23: TButton;
    Edit1: TEdit;
    Button24: TButton;
    Label39: TLabel;
    Memo8: TMemo;
    Button11: TButton;
    Button10: TButton;
    Button9: TButton;
    Button8: TButton;
    Button7: TButton;
    Button6: TButton;
    Button5: TButton;
    Button4: TButton;
    Button2: TButton;
    Button1: TButton;
    Button3: TButton;
    Button25: TButton;
    ts_idcard: TTabSheet;
    Memo9: TMemo;
    Panel9: TPanel;
    rxseUser: TRxSpinEdit;
    Button26: TButton;
    Button27: TButton;
    Label40: TLabel;
    cbHex: TCheckBox;
    Label42: TLabel;
    rxseGroup: TRxSpinEdit;
    Button28: TButton;
    Label43: TLabel;
    rxseUserNum: TRxSpinEdit;
    procedure bt_opencommClick(Sender: TObject);
    procedure rg_commClick(Sender: TObject);
    procedure bt_handshakeClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure bt_query_sClick(Sender: TObject);
    procedure bt_query_eClick(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure bt_get_currClick(Sender: TObject);
    procedure bt_get_nextClick(Sender: TObject);
    procedure bt_get_recClick(Sender: TObject);
    procedure bt_getallrecordClick(Sender: TObject);
    procedure bt_getallrecord1Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button19Click(Sender: TObject);
    procedure Button20Click(Sender: TObject);
    procedure Button21Click(Sender: TObject);
    procedure Button22Click(Sender: TObject);
    procedure Button23Click(Sender: TObject);
    procedure Button24Click(Sender: TObject);
    procedure se_node_addrChange(Sender: TObject);
    procedure se_node_addr1Change(Sender: TObject);
    procedure se_node_addr2Change(Sender: TObject);
    procedure se_node_addr3Change(Sender: TObject);
    procedure se_node_addr4Change(Sender: TObject);
    procedure se_node_addr5Change(Sender: TObject);
    procedure MemoMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button26Click(Sender: TObject);
    procedure Button27Click(Sender: TObject);
    procedure Button28Click(Sender: TObject);
    procedure Button25Click(Sender: TObject);
    procedure cbHexClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


// define gobal varible

icdev:integer;
password:string;

loop:boolean;

__memo:tmemo;


implementation

uses tccomm_def;
{$R *.DFM}

procedure TForm1.bt_opencommClick(Sender: TObject);
begin
     icdev := OpenComm(rg_comm.itemindex);

     if (icdev>0) then begin
        memo1.Lines.Add('打开串口'+inttostr(rg_comm.itemindex+1)+'成功!');
        bt_opencomm.Enabled := false;
        bt_handshake.Enabled := true;
//        gb_command.Enabled := true;
     end
     else begin
        memo1.Lines.Add('打开串口'+inttostr(rg_comm.itemindex+1)+'失败!');
     end
end;

procedure TForm1.rg_commClick(Sender: TObject);
begin
     if (icdev>0) then begin
        closecomm(icdev);
        memo1.Lines.Add('关闭串口'+inttostr(rg_comm.itemindex+1)+'成功!');
        bt_opencomm.Enabled := true;
        bt_handshake.Enabled := false;
     end;
end;

procedure TForm1.bt_handshakeClick(Sender: TObject);
var
   st:integer;
begin
     setlength(password,20);
     st:=GetPassword(icdev,se_node_addr.Value,pchar(password));
     st:=hand_shake(icdev,se_node_addr.value,password);
     if (st=0) then begin
        ed_password.Text := password;
        memo1.Lines.add('与'+inttostr(se_node_addr.Value)+'号机握手成功!');
     end
     else begin
        memo1.Lines.add('与'+inttostr(se_node_addr.Value)+'号机握手失败!'+inttostr(st));

     end
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   adatetime:string;
   st :integer;
begin
     pagecontrol1.ActivePage := ts_common;

     if length(ed_password.text)<8 then begin
        application.MessageBox('密码长度不足!','警告',mb_ok);
        exit;
     end ;

     st:=hand_shake(icdev,se_node_addr.Value,ed_password.text);
     if (st=0) then begin

        memo1.Lines.add('与'+inttostr(se_node_addr.Value)+'号机握手成功!');
     end
     else begin
        memo1.Lines.add('与'+inttostr(se_node_addr.Value)+'号机握手失败!'+inttostr(st));
        exit;
     end;

     DateTimeToString(adatetime,'yyyymmddhhmmss',now);
     st := set_time(icdev,adatetime);
     if (st = 0) then begin
        memo1.Lines.add('设置时间成功!');
        setlength(adatetime,50);
        st := get_time(icdev,pchar(adatetime));
        if (st=0) then begin
           memo1.Lines.add('取时间成功,时间为:'+adatetime);
        end
        else
           memo1.Lines.add('取时间失败!'+inttostr(st));
     end
     else
          memo1.Lines.add('设置时间失败!'+inttostr(st));


end;

procedure TForm1.bt_query_sClick(Sender: TObject);
var
   node,i:integer;
   st:integer;
   adata:String;
begin
     bt_query_s.Enabled := false;
     bt_query_e.Enabled := true;
     loop:=true;
     setlength(adata,100);
     i := 0;
     while(true) do begin
         for node:=se_node_s.value to se_node_e.Value do begin
             sleep(50);
             st := Real_Query(icdev,Node,pchar(aData));
             if (st=0) then begin
                if (strtoint(copy(adata,17,6))<>0) then begin
                   memo2.Lines.Add(inttostr(node)+'号机打卡数据为:'+adata);
                end
             end
             else begin
                 i := i+1;
                 memo2.Lines.Add(inttostr(i) + ': 与' + inttostr(node)+'号机通讯错误!'+inttostr(st));
             end
         end;

         application.ProcessMessages;
         if not (loop) then begin
            bt_query_s.Enabled := true;
            bt_query_e.Enabled := false;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -