如何让edit 控件只能接受ID卡刷卡内容,不能手工输入,但又可以在程序中赋值(50)

  • 主题发起人 主题发起人 libaoliang
  • 开始时间 开始时间
L

libaoliang

Unregistered / Unconfirmed
GUEST, unregistred user!
如何让edit 控件只能接受ID卡刷卡内容(刷出的是10位数字),不能手工输入,但又可以在程序中赋值
 
这很简单,你在edit的onchange写代码,判断如果输入的太慢,则是手工输入的。
 
简单的问题enabled:=false Readonly:=true 都可以, 建议用 ReadOnly。
 
如果使用readonly,那么刷卡也不行了,我试验过
 
所以以上二位的建议都不理想!
 
那还不简单,刷卡进另外一个visible 为 false 的 AEdit, 将这个AEdit的值赋值给 原来的Edit
 
可以通过时间来判断,刷卡输入时间很短不会超过1秒,而人工输入必然要几秒的
 
我的方法你试了没有?你不回应,这样论坛不会有人乐意回答问题,readOnly 为ture 刷卡机不能读入,说明刷卡机利用keyboardevent 输入数据,当AEdit Onchange 时,将AEdit的Text 赋值为 你的Edit。虽然我没有刷卡机验证,但我认为我的方法是可行的。
 
换个思路,光标一进入Edit,就屏蔽键盘。焦点出Edit,恢复键盘。
 
试一下这个控件:可以满足你的要求。他可以当label用。readonlyEX属性实现的。http://www.2ccc.com/article.asp?articleid=5525
 
XF.Lian,zhukewen的是正解,做个timer,超过x秒就清楚edit的内容
 
联系我,我们生产有ID卡读卡,QQ116230917
 
这是个问题啊,即使你把 Readonly:=true ,也不耽误你在代码中为edit赋值啊
 
KeyPressif key<> #13 then key := #0;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部