📄 listcard.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 + -