事情是这样的,在我的一个项目中,所有的edit对按键Delete无效,在另一个项目中又没有问题,找不出原因。以下代码捕捉不到按键delete,KeyPress中也不行。procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  showmessage(inttostr(Key));
  inherited;
end;

解决方案 »

  1.   

    把form的KeyPreview设为True试试..
      

  2.   

    无论 KeyPreview 为 True /False 都不行.
      

  3.   

    一定行希望你给分
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
     if key=#8 then
       begin
         //捕获到delete所要处理的代码
       end;
     
    end;
      

  4.   

    谢谢 xb7788(xb) 。
    首先,即使去掉 if key=#8 都不会有反应,更不用说加上个条件限制了;其次,#8是BackSpace的码,我说的是delete键,神经质码是46。
    分送出的时候,意味着问题已经解决了,我非常希望把分送出去呀。
      

  5.   

    是delete出问题了吧,按下没有反映吧
    再就是Edit1KeyPress收不到消息
      

  6.   

    如果edit1中有被选中的字符,会有预期的效果,即被选中的字符会被删除,但收不到那个码46,不论是在KeyDown/KeyPress里。
    但在另一个项目里就没问题,可见delete键没坏。