delphi如何限制扫描枪仅当焦点在文本软件框时有效而在按钮上时无效

changoher 2010-03-12 04:25:13
编程时常常遇到这样的问题:在条码枪扫描时,弹出提示框“你扫描的数据不存在”。可这时如果没看电脑屏幕,而又接着扫描下一个条码,由于条码枪自带回车功能,提示框消失。而操作人员无法得知自己扫描的多个条码中有不符合要求的。即使弹出的提示框默认焦点不在OK上,也是无法满足不看屏幕连续扫描的防错功能的。
我想到的解决方法:
(1)限制扫描枪仅当焦点在文本输入框中有效,而当焦点在其他位置时无效。
(2)或者能够在delphi中拜你控制条码枪,当出错时让它发出声音报警。
可这两种方法我都无法实现,由于条码枪插入后即相当于键盘。而键盘是无论何时都可以按下的。那究竟怎样才能在连接扫描操作时及时报错让操作者知道呢?即当扫描的数据不符时给出明显的提示,而不是仅仅一个提示框。
注:用Delphi直接控制电脑发声警告效果不明显,车间电脑没音箱设备,PC喇叭声音太小。
...全文
272 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Blessed_Chuan 2010-09-07
  • 打赏
  • 举报
回复
可以判断当前焦点是不是文本框进行处理
kehao0416 2010-09-05
  • 打赏
  • 举报
回复
有以下方法:
1.更改扫描枪的后缀字符。
2.错误提示信息使用panel,同时记录扫描出错的条码,待扫描完成后另行处理。
newfang 2010-09-04
  • 打赏
  • 举报
回复
最好是定义扫描枪加特殊字符的前缀或者后缀。
然后程序中通过判断那个特殊字符来实现报警或者反应不反应~~
zero0888 2010-09-03
  • 打赏
  • 举报
回复
请问此方法有效吗?结果如何?
ChipHead 2010-03-14
  • 打赏
  • 举报
回复
再补充一点:如果你的扫描枪不能设置后续字符,那么也可以通过对错误提示窗口的OnKeyxxx事件编程,屏蔽掉错误提示窗口的回车字符输入即可。
ChipHead 2010-03-14
  • 打赏
  • 举报
回复
扫描枪应该可以设置后续字符的:默认设置当然是回车,但如果你改成TAB呢?
那么: 在Edit的OnExit事件中向自己发送一个回车,并重新SetFocus,这样就可以把TAB带来的输入焦点跳转转化成回车的效果了
而:输入错误跳出的窗口上通常只有按钮,在按钮上TAB还是不会关闭窗口的。

这应该会是一个可行的解决思路。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧