onkeydown、onkeypress、onkeyup三个事件有什么区别?

zghnaywangzy 2007-06-18 12:16:18
各位老师好。
我初学delphi,onkeydown、onkeypress、onkeyup三个事件有什么区别?是不是
按键不弹起来onkeydown、onkeypress两个事件就不发生?onkeydown、onkeypress两个事件又有什么区别?
请各位老师详细指导,本人将不胜感激。
...全文
8567 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jadeluo 2007-06-21
  • 打赏
  • 举报
回复
有键按下 -> 产生onKeyDown事件 -> 如果是有ASCII码的按键, 则产生onKeyPress事件
有键释放 -> 产生onKeyUp事件

象Shift、Ctrl、Alt、F1、F2、...等按键是不会产生onKeyPress事件的。
finish07 2007-06-20
  • 打赏
  • 举报
回复
onkeydown和onkeypress的区别是有些键onkeypress是不会响应事件的.
如键盘的↑键onkeypress不会响应事件,但用onkeydown就可以响应.
huayufei 2007-06-20
  • 打赏
  • 举报
回复
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
showmessage('KeyDown');
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
showmessage('KeyPress');
end;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
showmessage('KeyUp');
end;
自己试试
我发现没有KeyUp提示 不知道原因
huaalexa 2007-06-19
  • 打赏
  • 举报
回复
onkeypress事件是在按键开始按的时候发生;
onkeydown事件是在按键已经按下的时候发生;
onkeyup事件是在按键松开(释放)的时候发生。
lw549 2007-06-18
  • 打赏
  • 举报
回复
分别在这三个事件里写outputdebugstring('正在执行xx事件');
运行,按键,看结果

5,388

社区成员

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

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