读卡器的
有一读卡器,是USB 接口的,不需要(然是win2000或xp系下), 用刷ID卡(非接式的), 接受一10位的物理(全是0-9的字),就像入的一.
我想做一身份的程序,用一刷卡(只有一刷卡的作,不用任何按), 接受10位, 存的比,比一致通,否.
我是理的: 在Form 上放一Edit控件(不可), 接受刷卡的,
的重是:我不知道在Edit的什么件中比的代, 而且Edit的Text一直累加刷卡的
教各位,如何,或者是我方式不正
!
[解决办法]
这种读卡器和一些条码扫描器差不多
以前做过2代身份证的一些应用,有的读卡器和你说的差不多
有两种思路
1.响应usb读卡器的“键盘”事件
2.采用你的方法。(可以在edit的onChange事件中比对,比对完成后清空)
另,这方法可能得要求你的edit有焦点
[解决办法]
加个timer 1秒就读一次卡的序列号
[解决办法]
为什么要加Edit呢?这种设计本来就有问题,你把数取到了,直接比对,不比写到Edit强?就算要加显示的东西也要用列表Grid呀,一次写一行,不用的就清掉,自己不是更好控制吗?
[解决办法]
按我的理解你已经读到了数据,因为你说Edit的Text一直累加刷卡的
那你就在edit的文本变更事件中写代码啊
首先检查text有没有10位,
有了10位再和数据库中的比较,正确/不正确应该怎么处理你自己想
处理完之后清除text
[解决办法]
哈哈 我最近用的就是这种id读卡器。 这类读卡器一般都有参数可调的,就是几个开关,你可以设置读到数据后追加一个回车进去,这样你就能 判断回车事件了,这样是最保险的,而且像这种被动刷卡的一般都是这么做的
[解决办法]
你用的是通用的读卡器 在鼠标焦点处输入射频卡物理卡号
不像我们用DLL或操作读卡器读出物理卡号
放1个timer
procedure TForm1.Timer1Timer(Sender: TObject);
var
sCardid:string;
begin
Timer1.Enabled:=False;
Edit1.SetFocus; //edit1获取焦点
if Trim(Edit1.Text)='' then
begin
Timer1.Enabled:=True
end
else
begin
sCardid:=Trim(Edit1.Text);
//送入卡号 检索数据库
end;
end;
试试看