首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条形码扫描器只显示条形码的第一位

条形码扫描器只显示条形码的第一位
EN

Stack Overflow用户
提问于 2015-01-16 14:35:49
回答 1查看 1.6K关注 0票数 1

我正在开发一个应用程序,它将使用条形码扫描仪。现在我遇到的问题是,当我扫描条形码时,它只会在TEdit中显示我的条形码的第一个号码。

当我测试条形码本身,通过扫描它,对MS,Word或记事本说,它扫描整个条形码,并显示完整的数字序列正确。

那么,当我的delphi应用程序扫描的时候,我需要写什么代码来让扫描仪从我的条形码中读取超过一个数字呢?

我扫描到一个TEdit框,并使用OnChange事件获取扫描值。

代码语言:javascript
复制
  procedure TfrmMain.edtWeightChange(Sender: TObject);
  begin
    ActiveWeight := StrToFloat(edtWeight.text);
  end;

我用的是德尔菲XE6。

编辑:我使用的是USB条形码扫描仪,并假设它的工作原理就像键盘一样。因此,我没有编写任何其他代码。我的假设是,因为它就像键盘一样工作,所以我只需要将焦点放在TEdit中,然后扫描条形码。Onchange事件使TEdit能够在条形码扫描器扫描时检测到。然后将该字符串值存储为数字变量ActiveWeight。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-16 14:49:51

不要使用OnChange事件,因为它可以被多次触发,而是使用OnKeyPress事件:

代码语言:javascript
复制
procedure TfrmMain.edtWeightKeyPress(Sender: TObject var Key: Char);
begin
 if Key=#13 then
  ActiveWeight := StrToFloat(edtWeight.text);
end;

此代码假设扫描器在扫描条形码(通常是这种情况)后发送一个回车返回。

需要注意的一点是,您需要使用TryStrToFloat来防止错误的用户输入(即用户按下TEdit中没有值的enter )。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27986261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档