各位老师好。
    我初学delphi,onkeydown、onkeypress、onkeyup三个事件有什么区别?是不是
按键不弹起来onkeydown、onkeypress两个事件就不发生?onkeydown、onkeypress两个事件又有什么区别?
   请各位老师详细指导,本人将不胜感激。

解决方案 »

  1.   

    分别在这三个事件里写outputdebugstring('正在执行xx事件');
    运行,按键,看结果
      

  2.   

    onkeypress事件是在按键开始按的时候发生;
    onkeydown事件是在按键已经按下的时候发生;
    onkeyup事件是在按键松开(释放)的时候发生。
      

  3.   

    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提示 不知道原因
      

  4.   

    onkeydown和onkeypress的区别是有些键onkeypress是不会响应事件的.
    如键盘的↑键onkeypress不会响应事件,但用onkeydown就可以响应.
      

  5.   

    有键按下 -> 产生onKeyDown事件 -> 如果是有ASCII码的按键, 则产生onKeyPress事件
    有键释放 -> 产生onKeyUp事件象Shift、Ctrl、Alt、F1、F2、...等按键是不会产生onKeyPress事件的。