键盘响应(F1)

xianxiangzi 2003-04-29 10:19:38
if Key = VK_F1 then
begin
ShellExecute(0,'open','safe.chm',nil,nil,SW_SHOW);
end;

if Key = #112 then
begin
ShellExecute(0,'open','safe.chm',nil,nil,SW_SHOW);
end;

if Key = chr(VK_F1) then
begin
ShellExecute(0,'open','safe.chm',nil,nil,SW_SHOW);
end;


请高手指点,总是提示类型不匹配。
...全文
70 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xianxiangzi 2003-04-29
  • 打赏
  • 举报
回复
我新建的工程中,在主FORM中可以反应F1键,触发事件ShellExecute(0,'open','safe.chm',nil,nil,SW_SHOW);在我的系统中在主FORM中加入后却没有反应,请高手指点!我是新手,请勿见笑。
我不要昵称 2003-04-29
  • 打赏
  • 举报
回复
如果解决问题要给分哦,我真的没分,只剩几分了
我不要昵称 2003-04-29
  • 打赏
  • 举报
回复
把窗口的keypreview:=true
tpmao 2003-04-29
  • 打赏
  • 举报
回复
什么意思????什么叫事件没有反应??
xianxiangzi 2003-04-29
  • 打赏
  • 举报
回复
现在编译通过了,谢谢。但是事件没有反应,是何原因?
我不要昵称 2003-04-29
  • 打赏
  • 举报
回复
楼主,你不是拷贝别人的吧?我照你的写没错啊。
如果是拷贝可能会出字符问题,你单个敲写了.
dongdonga 2003-04-29
  • 打赏
  • 举报
回复
学习..
cxreal 2003-04-29
  • 打赏
  • 举报
回复
把楼主写的测试了一下
都执行成功了.....
dashou_hs 2003-04-29
  • 打赏
  • 举报
回复
应当写在OnKeyDown事件中。OnKeyDown可以响应任何键,而OnKeyPress只能响应对应于字符的键,象Shift or F1这样的键是不响应的。
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_F1 then
ShowMessage('You pressed F1 Key!');
end;
myling 2003-04-29
  • 打赏
  • 举报
回复
如果在keypress里,就要寫#112

keydown/up里就要寫VK_F1

如果還不行,就是別的原因了


你在什麽控件上響應鍵盤?
myling 2003-04-29
  • 打赏
  • 举报
回复
你不會寫在了onkeypress里了吧?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧