我想用键盘上下左右的箭头来控制Tchart曲线移动,请问如何获得箭头按键的键码 ( 积分: 100 )

  • 主题发起人 主题发起人 seekmzy
  • 开始时间 开始时间
S

seekmzy

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用键盘上下左右的箭头来控制Tchart曲线移动,请问如何获得箭头按键的键码
 
我想用键盘上下左右的箭头来控制Tchart曲线移动,请问如何获得箭头按键的键码
 
vk_left vk_right vk_up vk_down
 
procedure TFrmm.HorizScroll(const Percent: Double);
begin
ScrollAxis(DBChart1 .TopAxis,Percent);
ScrollAxis(DBChart1.BottomAxis,Percent);

end;
procedure TFrmm.VertScroll(const Percent: Double);
begin
ScrollAxis(DBChart1 .LeftAxis,Percent);
ScrollAxis(DBChart1.RightAxis,Percent);
end;

procedure TFrm.ScrollAxis(Axis: TChartAxis; const Percent: Double);
var Amount:Double;
begin
With Axis do
begin
Amount:=-((Maximum-Minimum)/(100.0/Percent));
SetMinMax(Minimum-Amount,Maximum-Amount);
end;

end;
 
keydown里能获取
 
那么如何设定一个全局的键盘响应事件?

我做的曲线是在Tchart中的
我想在form 的keydown事件中利用箭头按键来调整曲线的幅度,即每按一次箭头参数变化一次,然后series重画一次。
我设定了这个keydown事件,可是我发现当我按键的时候这个事件并未响应!请高手帮忙说一下如何让form强制获得焦点并执行keydown事件。

分随后送出,发言的都有份!
 
我上面不是都说了吗,
在form的keydown事件
写 if key=vk_left then
HorizScroll(10);
vk_right
HorizScroll(-10);
vk_up
VertScroll(10);
vk_down
VertScroll(-10);
 
还是截取message消息吧~
放一个ApplicationEvents在他的OnMessage消息里写如下代码

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if (msg.Message >= WM_KEYFIRST) and (msg.Message <= WM_KEYLAST) then
if msg.wParam = vk_left then
//左
else if msg.wParam = VK_RIGHT then
//右
else if msg.wParam = vk_up then
//上
else if msg.wParam = vk_down then
//下
end;
 
晕,我自己这样做了,去掉界面上的按钮完全利用键盘来控制图像
[:D][:D]
你们的方法我没有采用,[8D],我的方法比较简单,不过还是谢谢上面几位兄弟了!
我把分放出来了
如果谁想要我完成后的代码,就留下e-mail,
哈哈,我是菜鸟,我怕谁!
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部