KeyDown事件中这样的代码 if key=39 then  
 showmessage('你按下了右键'); 
如果放在keypress事件的话 应该怎么写?
 

解决方案 »

  1.   

    keypress只会触发有ASCII码的按键
    而像方向键,Home,end,...等没有ASCII码,所以不会触keypress事件为什么一定要用keypress,可以变用KeyDown+KeyUp的
      

  2.   

    keypress 通通都可以放到 KeyUp 滴.
    还有 click 可以放到 mouseup 
      

  3.   

    因为我这个问题是想解决工作上的一个问题 ,它代码里在keypress事件里写了一个公用的函数,这个函数是对按下空格之后进行处理的。我现在业务上需要做到按下方向右等于按下空格键,有什么办法吗?
      

  4.   

    获取下方向键的键值后,让他与按空格键都触发同一事件,就可以了。
    if(空格键 ||  下方向键) 
     doEvent... ...
      

  5.   

    if key=Char(39) then
     showmessage('你按下了右键');只要将word转换成char即可。
      

  6.   

    //你原来有的代码:
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#32 then begin
        //...按下空格之后进行处理的语句
      end;
    end;//新加的代码:
    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var k:Char;
    begin
      k:=#32;
      if key=39 then Edit1KeyPress(Sender,k);
    end;
      

  7.   

    或://新加的代码:
    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var k:Char;
    begin
      if key=39 then begin
        k:=#32;
        Edit1KeyPress(Sender,k);
      end;
    end;