gpt4 book ai didi

delphi - 条形码扫描仪仅显示条形码的第一位

转载 作者:行者123 更新时间:2023-12-03 19:00:06 25 4
gpt4 key购买 nike

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

当我通过扫描条形码(例如对MS Word或记事本)测试条形码本身时,它将扫描整个条形码并正确显示整个数字序列。

那么,在用delphi应用程序扫描条形码时,是否需要编写任何代码以使扫描器从条形码中读取大于1的数字?

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

  procedure TfrmMain.edtWeightChange(Sender: TObject);
begin
ActiveWeight := StrToFloat(edtWeight.text);
end;


我正在使用Delphi XE6。

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

最佳答案

不要使用OnChange事件,因为它可以多次触发,请改用OnKeyPress事件:

procedure TfrmMain.edtWeightKeyPress(Sender: TObject var Key: Char);
begin
if Key=#13 then
ActiveWeight := StrToFloat(edtWeight.text);
end;


该代码假定扫描仪在扫描条形码后发送回车(通常是这种情况)。

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

关于delphi - 条形码扫描仪仅显示条形码的第一位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27986261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com