delphi - 如何在运行时使用键盘在 Delphi 中移动控件?

标签 delphi keyboard controls delphi-2010

我添加了一个选项,可以在运行时使用鼠标移动控件,基于 this并且运行良好。

但我试图找到一些代码来完成相同的技巧,但使用键盘 - 非常像在设计时移动组件(仅移动)。

如何实现这一目标?

最佳答案

如果您知道如何完成其​​中的不同部分,这将非常容易。

  1. 创建一个新的 VCL 应用程序。

  2. TShape 拖放到表单上。

  3. 将以下 OnKeyDown 事件处理程序添加到表单中:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
const
  D = 2;
begin
  case Key of
    VK_UP:
      Shape1.Top := Shape1.Top - D;
    VK_DOWN:
      Shape1.Top := Shape1.Top + D;
    VK_LEFT:
      Shape1.Left := Shape1.Left - D;
    VK_RIGHT:
      Shape1.Left := Shape1.Left + D;
  end;
end;
  • 运行应用程序。

  • 话虽这么说:

    通过移动表单上的控件来创建动画是错误的。

    相反,如果您想创建动画,正确的做法是使用 GDI、GDI+、OpenGL 或 DirectX/Direct2D 手动绘制它们。 Here这是我如何执行此操作的标准示例。

    关于delphi - 如何在运行时使用键盘在 Delphi 中移动控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65023556/

    相关文章:

    delphi - 我应该将许可证数据存储在本地哪里?

    android - 如何在 Delphi XE6 中为 Android 应用程序创建调试映射文件?

    DELPHI:WSDL 导入错误

    delphi - 无限滚动 VirtualTreeView

    c# - Silverlight 处理多个按键组合

    delphi - 如何在选中的复选框而不是复选标记中显示 "X'?

    c++ - 如何在 webkit 浏览器控件中返回指向 JavaScript 的 IDispatch 指针

    linux - 一台机器上的多个离散键盘输入

    ios - NSNotificationCenter 不适用于自定义键盘

    c# - control.Show 和 BringToFront 有什么区别?