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

📄 listcard.pas

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

interface

uses
  Windows, SysUtils, Classes, Graphics, Controls, Forms,
  EastRiver, StdCtrls, Mask, ComCtrls, ExtCtrls, PrjConst;

type
  TdlgListCard = class(TForm)
    lbCardId: TLabel;
    lbEmpId: TLabel;
    lbEmpName: TLabel;
    edCardNo: TMaskEdit;
    edEmpId: TMaskEdit;
    edEmpName: TMaskEdit;
    btnOK: TButton;
    btnCancel: TButton;
    edChargeMoney: TMaskEdit;
    lbChargeMoney: TLabel;
    procedure FormShow(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure edEmpIdKeyPress(Sender: TObject; var Key: Char);
    procedure edChargeMoneyKeyPress(Sender: TObject; var Key: Char);
    procedure edChargeMoneyExit(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
  private
    { Private declarations }
    FKind: Integer;
  public
    { Public declarations }
    Fpclk: PClockInfo;
    function Execute(pclk: PClockInfo;var CardNo, EmpId, EmpName: string; iKind: Integer): Boolean;
  end;

var
  dlgListCard: TdlgListCard;

implementation

uses Main, Functions;

{$R *.DFM}
const
  PeriodsHeight:Integer=120;

function TdlgListCard.Execute(pclk: PClockInfo;var CardNo, EmpId, EmpName: string; iKind: Integer): Boolean;
begin
  if not Assigned(dlgListCard) then
    dlgListCard := TdlgListCard.Create(Application);
  Self:=dlgListCard;
  FKind:=iKind;
  fpclk:=pclk;
  edCardNo.SelStart := 0;
  edCardNo.SelectAll;
  if ShowModal = mrOK then
  begin
    CardNo:=edCardNo.Text;
    EmpId:=edEmpId.Text;
    if GetClockSupports(fpclk.hPort, fiAllowCharge) then//支持补贴充值(ER-690C)
    begin
      EmpName:=edChargeMoney.Text;
    end else
      EmpName:=edEmpName.Text;
    Result := True;
  end else
    Result:=False;
end;

procedure TdlgListCard.FormShow(Sender: TObject);
  procedure GrayControl(lb: TLabel; Control: TMaskEdit; Enable: Boolean);
  begin
    if Enable then
    begin
      lb.Enabled:=True;
      lb.BringToFront;
      Control.Enabled:=True;
      Control.Color:=clWindow;
      Control.BringToFront;
    end else
    begin
      lb.Enabled:=False;
      lb.SendToBack;
      Control.Enabled:=False;
      Control.Color:=clBtnFace;
      Control.SendToBack;
    end;
  end;

  procedure SetShowControl(lb: TLabel; Control: TMaskEdit; Enable: Boolean);
  begin
    if Enable then
    begin
      lb.Visible:=True;
      Control.Enabled:=True;
      Control.Color:=clWindow
    end else
    begin
      lb.Visible:=False;
      Control.Enabled:=False;
      Control.Color:=clBtnFace;
    end;
  end;
begin
  if edCardNo.CanFocus then edCardNo.SetFocus;
  edChargeMoney.Text:='';
  case FKind of
    0:{白名单}
      begin
        GrayControl(lbCardId, edCardNo, True);
        GrayControl(lbEmpId, edEmpId, GetClockSupports(fpclk.hPort, fiHaveEmpId));
        if GetClockSupports(fpclk.hPort, fiAllowCharge) then
        begin
          GrayControl(lbEmpName, edEmpName, False);
          GrayControl(lbChargeMoney, edChargeMoney, True);
        end else
        begin
          GrayControl(lbEmpName, edEmpName, True);
          GrayControl(lbChargeMoney, edChargeMoney, False);
        end;
      end;
    1:{黑名单}
      begin
        GrayControl(lbCardId, edCardNo, True);
        GrayControl(lbEmpId, edEmpId, False);
        GrayControl(lbEmpName, edEmpName, False);
        GrayControl(lbChargeMoney, edChargeMoney, False);
      end;
  end;
end;

procedure TdlgListCard.FormDestroy(Sender: TObject);
begin
  dlgListCard:=nil;
end;

procedure TdlgListCard.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if ModalResult=mrOK then
  begin
    if edCardNo.Text='' then
    begin
      if edCardNo.Canfocus then edCardNo.SetFocus;
      Raise Exception.Create(SCeEaEeA);
    end;
  end;
end;

procedure TdlgListCard.edEmpIdKeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in [#3, #8, #22, #24, '0'..'9']) then Key:=#0;
end;

procedure TdlgListCard.edChargeMoneyKeyPress(Sender: TObject;
  var Key: Char);
begin
  if not (key in [#3, #8, #22, #24, '.', '0'..'9']) then Key:=#0;
end;

procedure TdlgListCard.edChargeMoneyExit(Sender: TObject);
begin
  if Trim(edChargeMoney.Text)='' then
    Raise Exception.Create(msg_please_enter_charge_money)
  else if StrToFloat(edChargeMoney.Text)>High(WORD)/10 then
    Raise Exception.Create(format(msg_over_money_limit, [High(WORD)/10]));
end;

procedure TdlgListCard.btnOKClick(Sender: TObject);
begin
  if (FKind=0) and (edChargeMoney.Enabled) then
  begin
    ModalResult:=mrNone;
    edChargeMoneyExit(Sender);
    ModalResult:=mrOK;
  end;
end;

end.

⌨️ 快捷键说明

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