创建我使用的表单时,在Delphi Tokyo上开发应用程序,设备Lanchang U8000S(http://www.itlecom.com/ProductsDetails.asp?id=1):
VKAutoShowMode := TVKAutoShowMode.never;
用于在示例TEdit组件和其他输入组件中输入时禁用显示虚拟键盘,因为在应用程序中可能会使用条形码扫描仪或硬件数字键盘输入许多输入。我设置为键盘仿真模式的扫描仪配置,并在扫描仿真后按Enter。
http://www.lckj.cn/Upload/U8000S_Scan_API.pdf
我使用:
setOutScanMode(1);//keyboard emulation
setScanCodeEnterKey(true);// Additional enter key after the scan results.
问题是,如果您启动应用程序,然后将光标和焦点放在一个TEdit
组件中并扫描条形码,则用Enter键无法得到空结果,但是如果您调用虚拟键盘并在打开后简单地将其关闭,则使用扫描仪工作正常,您会得到结果!并且在扫描仪不提供数据的同时,设备上的数字键盘工作正常。但是随后您需要更改焦点,然后再进行一些编辑,再次从扫描仪输入不起作用。
[如果您不使用VKAutoShowMode := TVKAutoShowMode.never;
,则一切正常,但是我不能使用此选项,因为我有很多表格,没有显示虚拟键盘的地方,但是为什么不显示虚拟键盘呢? !!!
看来还有另一种选择:
setOutScanMode(0) // Broadcast output mode.
但是我不知道如何使用此模式,因为我现在不在哪里捕获这些扫描数据!?
我希望有人知道如何解决这个问题!?
[如果您使用的是基于Android的条形码扫描仪,我发现接收扫描的最佳方法是向我们发送“意向书”。 Delphi示例中有示例应用程序,通常安装在C:\ Users \ Public \ Documents \ Embarcadero \ Studio \ 20.0 \ Samples \ Object Pascal \ Mobile Snippets \ AndroidIntents。 Brian Long撰写了几篇有关在Android上使用Intent的文章和视频。他还指出了在http://www.delphifeeds.com/go/s/149394的Rio 10.3初始发行版中的这些(和修复)问题。我不知道这些问题是否已在最新版本中修复。