永发信息网

delphi 上下左右键使用

答案:2  悬赏:0  手机版
解决时间 2021-01-03 23:26
  • 提问者网友:疯孩纸
  • 2021-01-03 20:38
怎么没反应,难道是asc码错了?而且,keypreview也改成TRUE了?改怎么写呀?procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
CASE KEY OF
#38 : Label1.Caption:='上';
#39:Label1.Caption:='下;
end;
end;
最佳答案
  • 五星知识达人网友:玩家
  • 2021-01-03 21:01
keypress事件只能检测可以显示的键,不能检测功能键
keydup可以检测所有键
你的这个功能可以在 keydup事件中检测,如下:
(注意:FROM1窗体的keypreview属性置true)
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
CASE KEY OF
37 : Label1.Caption:='左';
38 : Label1.Caption:='上';
39 : Label1.Caption:='右';
40 : Label1.Caption:='下';
end;
end;
以上在winxp+d7测试成功
全部回答
  • 1楼网友:詩光轨車
  • 2021-01-03 22:39
dbgridonkeydown(.........;key:word);begin case key of begin vk_up: begin if not dbgrid.datasource.dataset.bof then dbgrid.datasource.dataset.prior;//呵呵,忘了怎么写了 end; vk_down: begin if not dbgrid.datasource.dataset.eof then dbgrid.datasource.dataset.next;//呵呵,忘了怎么写了 end; vk_left://假如列的索引为0则向上移动一行,且社顶索引为列count-1 //如果不为零列索引-1 begin end; vk_right://同理vk_left begin end; end;end;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯