【问题标题】:Simulating keypress in FMX application在 FMX 应用程序中模拟按键
【发布时间】:2022-01-04 15:05:27
【问题描述】:

当您输入TMemo 时,是否有可能自动完成的第一件事是按下 Delete 键?我已经阅读了有关SendInput() 程序的信息,但我把它搞砸了,所以这就是我问这个问题的原因。

我第一次在应用程序中制作这个。该应用在 Android 上运行。

【问题讨论】:

  • 你想用这种方法实现什么?
  • @SilverWarior 好吧,这是我在 tmemo 中遇到的错误的一种解决方法。当我第一次输入 tmemo 时,它很好。但是当我离开并想再次输入时,光标总是跳到 tmemo 的开头并替换第一个字符。但是当我第一次按 del 键然后开始输入时,它不会跳回并替换字符。
  • 如果您尝试跟踪您遇到的错误而不是尝试使用这种不寻常的解决方法会更好。我的意思是,假设您设法解决了这个问题,然后修复了原始错误。那时你的解决方法变成了一个错误。
  • 根据您对错误的描述,我猜测第二次将焦点设置到 TMemo 组件可能是选择备忘录中的第一个字符,然后开始编写其中一个所谓的 @987654321 @ 或 Dead keys 字符,因为按 Delete 键确实会取消 Compose 或 Dead 键字符的创建。现在,如果我是对的,您只需要弄清楚这些来自哪里。
  • 对于了解您如何获得或离开 TMemo 焦点可能会非常有帮助。另一个有用的信息可能是您是否使用默认的本机或自定义屏幕键盘,以及您是否使用了一些不太常见的输入语言。

标签: android delphi keyboard firemonkey


【解决方案1】:

您可以查看 kbmFMX Pro,它包含一个可与现有控件一起使用的虚拟键盘。

在 Firemonkey 中创建虚拟键盘和模拟按键操作相当复杂,并且涉及访问 TTextService 和 Firemonkey 的其他功能。

如果仅在 Windows 上,您可以向窗口发送窗口消息以进行按键按下和按键向上,但在模拟 control/shift/alt 键时这也相对复杂。

【讨论】:

    猜你喜欢
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 2010-11-18
    • 2018-08-16
    • 2012-02-19
    相关资源
    最近更新 更多