实例介绍
【实例简介】
【实例截图】
【核心代码】
unit Main_U; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,IDCardClass_U, jpeg, OBThread; type TIDCardRead_F = class(TForm) img_Cover: TImage; Image_XP: TImage; ImageMin: TImage; ImageClose: TImage; BtnGlyph_UnRead: TImage; BtnGlyph_Read: TImage; lbl_Info: TLabel; ID_Name: TLabel; ID_Sex: TLabel; ID_Birth: TLabel; ID_Addr: TLabel; ID_Nation: TLabel; ID_Depart: TLabel; ID_Time: TLabel; ID_NewAddr: TLabel; ID_ID: TLabel; obthrd_ReadID: TOBThread; lbl_Con: TLabel; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure ImageCloseClick(Sender: TObject); procedure obthrd_ReadIDExecute(Sender: TObject; params: Pointer); procedure BtnGlyph_ReadClick(Sender: TObject); procedure BtnGlyph_UnReadClick(Sender: TObject); procedure ImageMinClick(Sender: TObject); procedure img_CoverMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private UsbOrCom: string; Port,pucSn,puiCHMsgLen,puiPHMsgLen: integer; StartReadID,PortEnable: Boolean;//停止阅读身份证 IDCard: TIDCard; procedure ReadIDCard();//读身份证 { Private declarations } public { Public declarations } end; var IDCardRead_F: TIDCardRead_F; implementation uses IDCardDll_U; {$R *.dfm} procedure TIDCardRead_F.FormClose(Sender: TObject; var Action: TCloseAction); begin IDCard.Destroy; StartReadID:= False; if PortEnable then SDT_ClosePort(Port); end; procedure TIDCardRead_F.FormCreate(Sender: TObject); begin IDCard:= TIDCard.Create; PortEnable:= OpenUsbPort(Port); if PortEnable then begin UsbOrCom:= 'U';//连接的类型是通过Usb端口 lbl_Con.Caption:= '连接类型:USB口连接'; lbl_Con.Font.Color:= clGreen; end else begin PortEnable:= OPenComPort(Port); if PortEnable then begin UsbOrCom:= 'C' ; //连接的类型是通过Com端口 lbl_Con.Caption:= '连接类型:串口连接'; lbl_Con.Font.Color:= clGreen; end else begin UsbOrCom:=''; lbl_Con.Caption:= '连接类型:端口错误导致未连接'; lbl_Con.Font.Color:= clRed; end; end; if not PortEnable then BtnGlyph_Read.Enabled:= False; StartReadID:= True; if (StartReadID) and (PortEnable) then BtnGlyph_ReadClick(nil); end; procedure TIDCardRead_F.ImageCloseClick(Sender: TObject); begin Close; end; procedure TIDCardRead_F.ReadIDCard; var iRet : integer; begin while (PortEnable) and (StartReadID) do begin Sleep(1000); iRet:= SDT_StartFindIDCard(Port, pucSn, 1); //查卡 if iRet = 159 then iRet:= SDT_SelectIDCard(Port,pucSn,1) //选卡 else Continue; if iRet= 144 then begin puiCHMsgLen:=0; puiPHMsgLen:=0; iRet:= SDT_ReadBaseMsgToFile(1001, 'wz.txt',puiCHMsgLen, 'zp.wlt',puiPHMsgLen,1); //存储文件 end else Continue; if iRet =144 then begin UsbOrCom:='U';//连接的类型是通过Usb端口 if UsbOrCom ='U' then iRet := GetBmp('zp.wlt',2) else if UsbOrCom='C' then //如果连接的类型是Com端口 iRet := GetBmp('zp.wlt',1); {case iRet of 0: Application.MessageBox('调用sdtapi.dll错误', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -1: Application.MessageBox('相片解码错误!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -2: Application.MessageBox('wlt文件后缀错误!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -3: Application.MessageBox('wlt文件打开错误!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -4: Application.MessageBox('wlt文件格式错误!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -5: Application.MessageBox('软件未授权!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -6: Application.MessageBox('设备连接错误!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); end; } if iRet=1 then begin Image_XP.Picture.LoadFromFile('zp.bmp'); IDCard.InitInfo(ExtractFilePath(Application.ExeName) 'wz.txt'); ID_Name.Caption:= IDCard.Name; ID_Sex.Caption:= IDCard.Sex_CName; ID_Nation.Caption:= IDCard.NATION_CName; ID_Birth.Caption:= IDCard.BIRTH; ID_Addr.Caption:= IDCard.ADDRESS; ID_ID.Caption:= IDCard.IDC; ID_Depart.Caption:= IDCard.REGORG; ID_Time.Caption:= IDCard.STARTDATE '-' IDCard.ENDDATE; DeleteFile('zp.bmp'); DeleteFile('wz.txt'); end else Continue; end; end; end; procedure TIDCardRead_F.obthrd_ReadIDExecute(Sender: TObject; params: Pointer); begin ReadIDCard; end; procedure TIDCardRead_F.BtnGlyph_ReadClick(Sender: TObject); begin StartReadID:= True; BtnGlyph_Read.Visible:= False; BtnGlyph_UnRead.Visible:= True; obthrd_ReadID.Execute(nil); end; procedure TIDCardRead_F.BtnGlyph_UnReadClick(Sender: TObject); begin BtnGlyph_Read.Visible:= True; BtnGlyph_UnRead.Visible:= False; StartReadID:= False;; end; procedure TIDCardRead_F.ImageMinClick(Sender: TObject); begin IDCardRead_F.WindowState:= wsMinimized; end; procedure TIDCardRead_F.img_CoverMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if ssleft in shift then Releasecapture; perform(WM_SYSCOMMAND,$F012,0); end; end.
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论