问题描述
非英语语言通常有变音符号(添加到字母中以改变字母的字形),例如法语中的抑扬符号,如 â
或 ê
。这些字符通常是通过首先敲击键盘上的死键获得的,例如 ^,然后是我们想要应用变音符号的字母。因此,要获得 â
,必须先按 ^ 然后按 a 才能在编辑控件中看到 â
。
在 Delphi 中使用 FireMonkey 编写 Android 应用程序时,当物理键盘连接到 Android 设备时,无论是通过 USB 还是蓝牙,这些变音符号的处理一直存在问题。
例如,在 Delphi 10.4.x 之前,在 TEdit
或 TMemo
中,按 ^ 后跟 a 会得到 { {1}} 而不是预期的 ^a
。请注意,不是用 Delphi 编写的应用程序不会出现这种特殊问题。
从 Delphi 10.4.x 开始,â
的问题已得到修复,但不幸的是 TEdit
仍然受到该问题的困扰。当然,如果不使用物理键盘,则一切正常。但是,由于我正在尝试编写一个支持物理键盘的应用程序,特别是在三星 DeX 模式下,这会带来一个严重的问题。
因此,我寻求帮助可能覆盖 TMemo
的键处理,可能使用 TMemo
事件,以解决此问题,该问题阻止非英语用户使用我的应用程序。
知道按下 ^ 时,在 OnKeyDown
事件中我们得到 OnKeyDown
和 Key = $0
,我设法拦截变音符号并插入重音字母,但我无法删除变音符号,因此按 ^ 后按 a 会在 KeyChar = 710
中给出 ^â
。我不知道如何删除 TMemo
前面的 ^
。
â
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)