📄 door.pas
字号:
unit door;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BusinessSkinForm, DBCtrls, StdCtrls, xpGroupBox, bsSkinCtrls,
bsdbctrls, RzPanel, xpEdit, xpBitBtn, xpCombo, xpButton, ExtCtrls,
RzSplit, ComCtrls, xpPages, RzCmboBx, RzGroupBar, xpWindow, xpPanel,
bsDialogs, DB, ADODB, RzBorder, RzBckgnd, jpeg, RzButton, RzRadChk,
bsSkinBoxCtrls, RzEdit, Grids, DBGrids, MPlayer,mmsystem;
type
Tdoorerform = class(TForm)
bsBusinessSkinForm1: TbsBusinessSkinForm;
RzGroupBar1: TRzGroupBar;
RzGroup1: TRzGroup;
RzGroup2: TRzGroup;
RzPanel1: TRzPanel;
RzBackground2: TRzBackground;
Image1: TImage;
RzLEDDisplay2: TRzLEDDisplay;
ry1: TADOQuery;
ADOConnection1: TADOConnection;
Edit1: TxpEdit;
rySc1: TDataSource;
RzPanel2: TRzPanel;
bsSkinDBImage1: TbsSkinDBImage;
Image2: TImage;
bsSkinLabel6: TbsSkinLabel;
bsSkinLabel12: TbsSkinLabel;
bsSkinLabel13: TbsSkinLabel;
bsSkinLabel14: TbsSkinLabel;
bsSkinLabel15: TbsSkinLabel;
bsSkinLabel16: TbsSkinLabel;
bsSkinLabel17: TbsSkinLabel;
bsSkinLabel18: TbsSkinLabel;
bsSkinLabel19: TbsSkinLabel;
bsSkinLabel20: TbsSkinLabel;
bsSkinDBText1: TbsSkinDBText;
bsSkinDBText2: TbsSkinDBText;
bsSkinDBText3: TbsSkinDBText;
bsSkinDBText4: TbsSkinDBText;
bsSkinDBText5: TbsSkinDBText;
bsSkinDBText6: TbsSkinDBText;
bsSkinDBText7: TbsSkinDBText;
bsSkinDBText8: TbsSkinDBText;
bsSkinDBText9: TbsSkinDBText;
bsSkinDBText15: TbsSkinDBText;
Radio2: TRzRadioButton;
ComboBox1: TComboBox;
Radio1: TRzRadioButton;
info: TADOQuery;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
doincomm: TADOCommand;
dooutCom: TADOCommand;
Timer1: TTimer;
countrs: TADOQuery;
countrsrs: TIntegerField;
opendoorCom: TADOCommand;
closedoor: TADOCommand;
ry1guest_id: TStringField;
ry1guest_name: TStringField;
ry1xb: TStringField;
ry1gj: TStringField;
ry1co_name: TStringField;
ry1address: TStringField;
ry1lx: TStringField;
ry1md: TStringField;
ry1zj_name: TStringField;
ry1zj_no: TStringField;
ry1photo: TBlobField;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
procedure doin(var gst_id:string);
public
{ Public declarations }
end;
var
doorerform: Tdoorerform;
instr:string;
bimg1,bimg2,bimg3:timage;
implementation
{$R *.dfm}
procedure Tdoorerform.doin(var gst_id:string);
begin
//showmessage(instr);
ry1.Close;
ry1.Parameters.ParamByName('g_id').Value:=instr;
ry1.Open;
if ry1.IsEmpty then
begin
//警报
// BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
PlaySound(pchar('.\malfound.wav'),application.Handle,SND_ASYNC) ;
image1.Picture.Bitmap:=bimg1.Picture.Bitmap;
showmessage('无此人记录!请核查!');
end else
begin
if radio1.Checked then
begin
image1.Picture.Bitmap:=bimg3.Picture.Bitmap;
//记录为已进入
TRY
PlaySound(pchar('.\ready.wav'),application.Handle,SND_ASYNC) ;
doincomm.Parameters.ParamByName('gstid').Value:=trim(instr);
doincomm.Parameters.ParamByName('door_no').Value:=copy(combobox1.Text,1,2);
doincomm.Execute;
EXCEPT
beep;
image1.Picture.Bitmap:=bimg1.Picture.Bitmap;
PlaySound(pchar('.\malfound.wav'),application.Handle,SND_ASYNC) ;
SHOWMESSAGE('该人员已经进场,请核查!');
END;
end else
begin
dooutcom.Parameters.ParamByName('gstid').Value:=trim(instr);
dooutcom.Execute;
PlaySound(pchar('.\ready.wav'),application.Handle,SND_ASYNC) ;
end;
end;
edit1.Text:='';
edit1.SetFocus;
end;
procedure Tdoorerform.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
image1.Picture.Bitmap:=bimg2.Picture.Bitmap;
if (key=#122) and (length(trim(edit1.text))=1) then
begin
edit1.Text:='';
beep;
edit1.Text:='';
combobox1.SetFocus;
end;
if edit1.Text='00' then begin radio1.Checked:=true;edit1.Text:='';edit1.SetFocus;end;
if edit1.Text='11' then begin radio2.Checked:=true;edit1.Text:='';edit1.SetFocus;end;
if length(trim(edit1.Text+key))=10 then
begin
if combobox1.Text<>'' then
begin
instr:=trim(edit1.Text+key);
key:=#0;
doin(instr);
end else BEGIN EDIT1.Text:='';SHOwMESSAGE('请选择门号后重新扫描该证件!');key:=#0;END;
end;
end;
procedure Tdoorerform.FormCreate(Sender: TObject);
begin
instr:='';
bimg1:=TImage.Create(self);
bimg2:=TImage.Create(self);
bimg3:=TImage.Create(self);
bimg1.Picture.LoadFromFile('.\red.bmp');
bimg2.Picture.LoadFromFile('.\he.bmp');
bimg3.Picture.LoadFromFile('.\green.bmp');
end;
procedure Tdoorerform.ComboBox1Change(Sender: TObject);
begin
try
opendoorcom.Parameters.ParamByName('doorname').Value :=trim(combobox1.Text);
opendoorcom.Execute;
EDIT1.Enabled:=TruE;
edit1.Text:='';
COMBOBOX1.Enabled:=FALSE;
edit1.SetFocus;
except
showmessage('该门号已被他人占用,请更换!');
end;
end;
procedure Tdoorerform.Timer1Timer(Sender: TObject);
begin
countrs.Active :=true;
rzleddisplay2.Caption:=countrsrs.AsString;
countrs.Active :=false;
info.Active :=false;
info.Active :=true;
info.Last;
end;
procedure Tdoorerform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
closedoor.Parameters.ParamByName('door').Value:=trim(combobox1.Text );
closedoor.Execute;
end;
procedure Tdoorerform.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8,#13]) then
begin
key:=#0;
beep;
ShowMessage('请选择数字输入值!');
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -