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

📄 doorperiods.pas

📁 一个Delphi写的跟考勤机门禁机收款机的接品软件源码
💻 PAS
字号:
unit DoorPeriods;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, Mask, ExtCtrls;

type
  TdlgDoorPeriods = class(TForm)
    gbPeriods: TGroupBox;
    edBegin: TMaskEdit;
    Label1: TLabel;
    gbWeeks: TGroupBox;
    lbEnd: TLabel;
    edEnd: TMaskEdit;
    cbWeek1: TCheckBox;
    cbWeek2: TCheckBox;
    cbWeek3: TCheckBox;
    cbWeek4: TCheckBox;
    cbWeek5: TCheckBox;
    cbWeek6: TCheckBox;
    cbWeek7: TCheckBox;
    gbDoors: TGroupBox;
    cbDoor1: TCheckBox;
    cbDoor2: TCheckBox;
    cbDoor3: TCheckBox;
    cbDoor4: TCheckBox;
    Label3: TLabel;
    cbLevel: TComboBox;
    plBottom: TPanel;
    btnOk: TButton;
    btnCancel: TButton;
    cbState: TComboBox;
    lbState: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure edBeginExit(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
    PeriodKind: Integer;
    PassDoors: string;
  end;

var
  dlgDoorPeriods: TdlgDoorPeriods;

implementation

uses
  Main;

{$R *.DFM}

procedure TdlgDoorPeriods.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  cbLevel.ItemIndex:=0;
  cbState.Items.Clear;
  for i:=0 to High(arDoorStates) do
    cbState.Items.Add(arDoorStates[i]);
  cbState.ItemIndex:=0;
end;

procedure TdlgDoorPeriods.FormDestroy(Sender: TObject);
begin
  dlgDoorPeriods:=nil;
end;

procedure TdlgDoorPeriods.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  if ModalResult=mrOk then
  begin
    PassDoors:='';
    if cbDoor1.Checked then PassDoors:=PassDoors+'1';
    if cbDoor2.Checked then PassDoors:=PassDoors+'2';
    if cbDoor3.Checked then PassDoors:=PassDoors+'3';
    if cbDoor4.Checked then PassDoors:=PassDoors+'4';
  end;
end;

procedure TdlgDoorPeriods.FormShow(Sender: TObject);
begin
  if edBegin.CanFocus then edBegin.SetFocus;
  cbDoor1.Checked:=Pos('1', PassDoors)<>0;
  cbDoor2.Checked:=Pos('2', PassDoors)<>0;
  cbDoor3.Checked:=Pos('3', PassDoors)<>0;
  cbDoor4.Checked:=Pos('4', PassDoors)<>0;
  case PeriodKind of
    0, 7, 8:{授权时间段}
    begin
      lbState.Visible:=False;
      cbState.Visible:=False;
      lbEnd.Visible:=True;
      edEnd.Visible:=True;
      cbLevel.Enabled:=PeriodKind<>8;
      cbLevel.Visible:=PeriodKind<>8;
      Label3.Visible:=PeriodKind<>8;
      if PeriodKind=8 then
      begin
        gbDoors.Visible:=True;
        gbWeeks.Visible:=False;
        Self.Height:=291-gbWeeks.Height;
      end else if PeriodKind=0 then//平时
      begin
        gbDoors.Visible:=True;
        gbWeeks.Visible:=True;
        gbWeeks.Top:=152;
//        Self.Height:=291-gbDoors.Height;
        Self.Height:=291;
      end else
      begin              //假日
        gbDoors.Visible:=True;
        gbWeeks.Visible:=False;
        gbWeeks.Top:=80;
//        Self.Height:=291-gbDoors.Height-gbWeeks.Height;
        Self.Height:=291-gbWeeks.Height;
      end;
    end;
    1..6:{设备状态}
    begin
      lbState.Visible:=True;
      cbState.Visible:=True;
      lbEnd.Visible:=False;
      edEnd.Visible:=False;
      cbLevel.Visible:=False;
      Label3.Visible:=False;
      cbLevel.ItemIndex:=0;
      gbWeeks.Visible:=False;
      gbDoors.Visible:=True;
      gbDoors.Top:=80;
      Self.Height:=291-gbWeeks.Height;
    end;
  end;
end;

procedure TdlgDoorPeriods.edBeginExit(Sender: TObject);
begin
  if Sender is TMaskEdit then
    with Sender as TMaskEdit do
    begin
      try
        if Text<>'24:00' then
          StrToTime(Text);
      except
        if CanFocus then SetFocus;
        Raise;
      end;
    end;
end;

procedure TdlgDoorPeriods.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if ModalResult=mrOK then
  try
    if edBegin.Visible then edBeginExit(edBegin);
    if edEnd.Visible then edBeginExit(edEnd);
  except
    CanClose:=False;
    Raise
  end;
end;

end.

⌨️ 快捷键说明

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