【发布时间】:2023-12-21 22:37:02
【问题描述】:
我正在尝试将程序从 Delphi7 升级到 DelphiXE8。
在程序中有一些 TEdit 字段。您可以通过键盘或 USB 扫描仪在该字段中输入数据。 USB 扫描仪模拟键盘并在所有其他程序中正常工作。 (Delphi7、Firefox、Editor等中的同一个程序……)
如果我在 Delphi XE8 中使用扫描仪,TEdit 字段不会得到正确的数据。如果我触发 KeyDown 事件,我会看到有很多 Key 16/17/18 进入,但 KeyChar 始终为 #0。
TMemo 也有同样的问题。
我只是尝试了一些不同的东西:
在 VCL 项目中,扫描仪工作正常。 在 FMX 项目中,扫描仪失败。
扫描仪是 Birch BF-481BU/N。
有什么想法可以解决这个问题吗?
【问题讨论】:
-
嗨!您在为 Windows 开发吗?
-
您的扫描仪是否支持按键输入之间的延迟设置?您是否尝试过增加延迟?
-
到目前为止,它只适用于windows。但将来我们不会将其移植到其他设备上。
-
它将间隔设置为 99ms.... 相同的结果。
-
在 Delphi7 和 XE8-VCL 中有一条 Windows 消息 WM_CHAR 会导致 OnKeyPressed 事件。 USB-Scanner 发送这个 WM_Char 作为实际密钥。但是 FMX.Platform.Win 第 2328 行永远不会在 FMX 项目中被触发。
标签: delphi firemonkey barcode-scanner delphi-xe8