【发布时间】:2013-07-31 12:36:01
【问题描述】:
我正在尝试拥有一个键控摄像头。 TForm 没有 Onkeypress,所以我如何从键盘读取此输入?
procedure TForm2.FormKeyPress(Sender: TObject; var Key: Char);
var
ok: boolean;
begin
ok := true;
case Key of
'a': camera1.Position.y:=camera1.Position.y+1;
'A': camera1.Position.y:=camera1.Position.y+1;
'd': camera1.Position.y:=camera1.Position.y-1;
'D': camera1.Position.y:=camera1.Position.y-1;
'w': camera1.Position.X:=camera1.Position.X-1;
'W': camera1.Position.X:=camera1.Position.X-1;
'x': camera1.Position.X:=camera1.Position.X+1;
'X': camera1.Position.X:=camera1.Position.X+1;
'q': camera1.RotationAngle.z := camera1.RotationAngle.z-1;
'Q': camera1.RotationAngle.z := camera1.RotationAngle.z-1;
'e': camera1.RotationAngle.z := camera1.RotationAngle.z+1;
'E': camera1.RotationAngle.z := camera1.RotationAngle.z+1;
'z': camera1.Position.z:=camera1.Position.z+1;
'Z': camera1.Position.z:=camera1.Position.z+1;
'c': camera1.Position.z:=camera1.Position.z-1;
'C': camera1.Position.z:=camera1.Position.z-1;
else
ok := false;
end; {case}
//if ok then
// Invalidate;
positionChange(camera1);
RotationAngleChange(camera1);
end;
【问题讨论】:
-
TForm 有事件 OnKeyDown 和 OnKeyUp (XE3, XE4)。
-
使用 xe2 将添加该标签 :(
-
事件中也缺少 OnKeyDown
-
@TLama 我认为文档非常真实......并讲述了公开的事件,但它们必须发布才能成为在 OI 内可见
-
Ok XE2 Update 4 Hotfix 1 并且在 OI
OnKeyDown,OnKeyUp,OnKeyUp,OnMouse...中可见更多事件,所以这个问题针对的是一个已修复的错误
标签: delphi delphi-xe2 firemonkey