社区
Delphi
帖子详情
怎麼在EDIT控件中實現不能用鍵盤輸入,只能用掃碼槍掃入?
X_0
2010-03-24 11:50:45
請問:怎麼在EDIT控件中實現不能用鍵盤輸入,只能用掃碼槍掃入條碼?謝謝!
...全文
594
23
打赏
收藏
怎麼在EDIT控件中實現不能用鍵盤輸入,只能用掃碼槍掃入?
請問:怎麼在EDIT控件中實現不能用鍵盤輸入,只能用掃碼槍掃入條碼?謝謝!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ChipHead
2010-03-25
打赏
举报
回复
[Quote=引用 21 楼 sz_haitao 的回复:]
一定要区分 按键来源 是 键盘还是扫描枪
可以在按键的 间隔 和 长度(字符数、最后是回车) 里做判断
只接受 2个连续字符间停顿时间小于xx毫秒的,这样得到的字符串长度为y,且最后一个字符是回车的,才真正接受
[/Quote]
如果一定要区分键盘和扫描枪,恐怕也只有这个方法了。
X_0
2010-03-24
打赏
举报
回复
能簡單給我寫兩句嗎?萬分感謝
haitao
2010-03-24
打赏
举报
回复
不用做任何事情
扫描枪的驱动会把扫得的条码作为按键输入到edit的
bdmh
2010-03-24
打赏
举报
回复
[Quote=引用 2 楼 x_0 的回复:]
設為只讀,掃碼也進不去了
[/Quote]
胡说,设为只读可以禁止键盘输入,扫描枪扫描后,会触发对应的事件,你可以通过代码给edit赋值
X_0
2010-03-24
打赏
举报
回复
設為只讀,掃碼也進不去了
yct0605
2010-03-24
打赏
举报
回复
edit设置为只读......
X_0
2010-03-24
打赏
举报
回复
掃碼槍是跟鍵盤插在一起的,用個1轉2的連在一起,而且不插鍵盤,掃碼槍也不能用,這是不是沒辦法屏蔽鍵盤啊?
haitao
2010-03-24
打赏
举报
回复
一定要区分 按键来源 是 键盘还是扫描枪
可以在按键的 间隔 和 长度(字符数、最后是回车) 里做判断
只接受 2个连续字符间停顿时间小于xx毫秒的,这样得到的字符串长度为y,且最后一个字符是回车的,才真正接受
Harryfin
2010-03-24
打赏
举报
回复
我一直认为最好把这个技术问题转化为管理的问题
天火
2010-03-24
打赏
举报
回复
可不可以这样呢,如果是键盘输入,肯定会让那个EDIT控件得到焦点,但扫描枪不一定,可以设成,当这个控件得到焦点时不让输入。如果说扫描枪也会先得焦点的话,那就用两个EDIT控件,一个得值,一个传值 。得值的那个控件如果不想让输入,又不能隐藏和只读,可以把它拉到窗体外面去。
scfanxzq
2010-03-24
打赏
举报
回复
[Quote=引用 14 楼 harryfin 的回复:]
扫描枪是模拟键盘输入的,触发后会返回一串字符串和一个回车符
[/Quote]
我倒是想到那么一个方法,在keypress里面不直接修改edit的值,而是用一个全局的字符串来记录,只有当读到一个#13的字符的时候,就把那个全局的字符串放到edit里面,并且清空字符串。但是有一个问题就是,如果在使用扫描枪之前点了两下键盘,再扫描,这个时候点的键盘的信息也会被记录下来。这个怎么解决呢?
scfanxzq
2010-03-24
打赏
举报
回复
[Quote=引用 15 楼 yct0605 的回复:]
换成label就完事了,不用那么复杂了。
[/Quote]
我晕啊,问题是你要实现扫描枪输入的话,最简单的办法就是响应keypress事件,就算用label,你在keypress事件里面不照样会修改label的caption吗?那点键盘不照样会修改label的caption吗?
haochin
2010-03-24
打赏
举报
回复
键盘和扫描枪是同一种输入设备吧。
yct0605
2010-03-24
打赏
举报
回复
换成label就完事了,不用那么复杂了。
Harryfin
2010-03-24
打赏
举报
回复
扫描枪是模拟键盘输入的,触发后会返回一串字符串和一个回车符
scfanxzq
2010-03-24
打赏
举报
回复
[Quote=引用 10 楼 ok1411 的回复:]
自己试试不就知道了
[/Quote]
没接触过扫描枪,两年前一次工作机会,接触到一个磁卡的读卡器,就像超市刷银行卡的那个东东,和扫描枪的原理一样,也是响应keypress事件,但是那个和键盘是同样的原理,所以肯定枪能触发,键盘就肯定能触发
ChipHead
2010-03-24
打赏
举报
回复
[Quote=引用 9 楼 scfanxzq 的回复:]
好像不是那么简单吧,首先扫描枪扫描后应该是触发keypress事件吧?如果你响应这个事件,那你按键盘的时候不也同样的会响应这个事件吗?
[/Quote]
可是系统就是把扫描枪当作键盘一样看待的。如果一定说键盘不能用来录入,可能只能:
1. 去直接访问驱动程序的输入;
2. 据说有个底层钩子可以在键盘事件产生之前获得输入,也许用这个钩子可以达到目的:http://topic.csdn.net/u/20100313/19/23e1bae3-361f-463f-9fba-925b108f075c.html
flew0214
2010-03-24
打赏
举报
回复
直接拔掉键盘吧。。
ok1411
2010-03-24
打赏
举报
回复
自己试试不就知道了
scfanxzq
2010-03-24
打赏
举报
回复
[Quote=引用 7 楼 bdmh 的回复:]
引用 5 楼 x_0 的回复:
能簡單給我寫兩句嗎?萬分感謝
这有什么好给的,扫描枪接口会直接返回条码值,你只需要Edit.Text := xxxxx就行了
[/Quote]
好像不是那么简单吧,首先扫描枪扫描后应该是触发keypress事件吧?如果你响应这个事件,那你按键盘的时候不也同样的会响应这个事件吗?
加载更多回复(3)
朱老师QT系列课程-1.5.QT标准
控件
之InputWidget
本课程属于《朱老师QT完全学习系列课程》的第1部分《QT上手》的第5个课程,主要是学习qt的输入编辑类
控件
。本课程并非零基础,需要沿着课程路线去系统学习。本课程主要讲了QT的编辑器类
控件
,包括:InputWidget ComboBox FontComboBox Line
Edit
Text
Edit
PlainText
Edit
SpinBox DoubleSpinBox Time
Edit
Date
Edit
Date/Time
Edit
Dial HorizontalScrollBar VerticalScrollBar HorizontalSlider VerticalSlider KeySequence
Edit
qt 扫码枪扫描 输入事件 包含可输入字符
与大多数键盘输入相同,上档即shift键会对键盘输入的内容产生影响,在qt的事件中也是如此,比如直接按键盘上的q就是q所对应的字符编码,如果信息是Q那么在qt的事件则是先给一个16,之后再是q所对应的字符编码,所以才有了以上的处理。当需要对扫码枪扫描出的信息进行处理或打印等,有多个办法,其中串口,中间件等不在本文章讨论内。
用VC实现特定编辑框上对回车键响应
用VC实现特定编辑框上对回车键响应摘要:本文讲述了在指定的编辑框上能响应从键盘输入回车键的一种方法,对进程内消息的解析、动态获取指定资源ID等技术也作了简要描述。 关键字:Microsoft Visual C++ 6.0、编辑框、回车键、消息、资源 一、引言 在通常的以C
Edit
View为基类的单文档/多文档视图程序中,可以很好的响应键盘输入的回车键,只需比较最近两次的输入的字符,看看
一个简单T9输入法的实现(有代码)
文章难度:初学者 关于T9输入法的核心程序(由我朋友Nix提供),共两个文件,一个是NixInputMethod.h,还有一个是T9.c; 参见附录。 具体输入法的实现方法如下: 1. 首先创建一个对话框,然后在其中放入两个
控件
:IDC_
EDIT
1 和 IDC_WORD (STATIC
控件
) 2. 为了实现在
Edit
中一边输入,STATIC中会出现智能的功能,所以我们的实现如下:
一个简单T9输入法的实现
关于T9输入法的核心程序(由我朋友Nix提供),共两个文件,一个是NixInputMethod.h,还有一个是T9.c; 参见附录。
具体输入法的实现方法如下:
1. 首先创建一个对话框,然后在其中放入两个
控件
:IDC_
EDIT
1 和 IDC_WORD (STATIC
控件
)
2. 为了实现在
Edit
中一边输入,STATIC中会出现智能的功能,所以我们的实现如下:
a) 重载函数PreTranslateMessage ,使其能
Delphi
5,391
社区成员
262,736
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章