繁体   English   中英

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

[英]How can I move a control in Delphi at runtime using the keyboard?

基于,我添加了一个在运行时使用鼠标移动控件的选项,它运行良好。

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

如何做到这一点?

如果您知道如何执行它的不同部分,这将非常容易。

  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;
  1. 运行应用程序。

然而,话虽如此:

通过在窗体上移动控件来创建动画是错误的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM