Jap*_*ter 1 delphi barcode-scanner
我正在开发一个将使用条形码扫描仪的应用程序.现在我遇到的问题是,当我扫描条形码时,它只显示TEdit中我的条形码的第一个数字.
当我通过扫描测试条形码本身时,它说到MS Word或记事本,它扫描整个条形码并显示正确的整数序列.
那么,当我使用我的delphi应用程序扫描时,是否需要编写任何代码以使扫描程序从条形码中读取多于1个数字?
我扫描到TEdit框并使用OnChange事件来获取扫描值.
procedure TfrmMain.edtWeightChange(Sender: TObject);
begin
ActiveWeight := StrToFloat(edtWeight.text);
end;
Run Code Online (Sandbox Code Playgroud)
我正在使用Delphi XE6.
编辑:我正在使用USB条形码扫描仪,并假设它的工作原理就像键盘一样.因此我没有写任何其他代码.我的假设是因为它的工作方式就像一个keybaord,我只需要将焦点放入TEdit然后扫描条形码.Onchange事件是TEdit可以检测条形码扫描器何时扫描.然后我将该字符串值存储为数字变量ActiveWeight
不要使用该OnChange事件,因为它可以被多次触发,OnKeyPress而是使用该 事件:
procedure TfrmMain.edtWeightKeyPress(Sender: TObject var Key: Char);
begin
if Key=#13 then
ActiveWeight := StrToFloat(edtWeight.text);
end;
Run Code Online (Sandbox Code Playgroud)
此代码假定扫描器在扫描条形码后发送回车(通常是这种情况).
需要注意的一点是,您需要使用TryStrToFloat来防止错误的用户输入(即用户按下输入TEdit没有值)