if key =char(VK_DELETE) then
    key := #0;

解决方案 »

  1.   

    好像没有办法!为什么不用 onKeydown
      

  2.   

    建议使用虚拟键值
    VK_DELETE = 46;
    OnKeyPress只能识别可显示的键
    应该检测OnKeyDown才对
      

  3.   

    那就可以试试 
    if key =VK_DELETE then
        key := #0;
      

  4.   

    如果是在一个FORM中使用的话,要设置属性: keypreview:=true;
      

  5.   

    keypreview:=true;
    procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
    begin
        if key =VK_DELETE then
        key := #0;
    end;
      

  6.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key=VK_DELETE then
       key:=0;
    end;
    Delphi6.0,2000下通过
      

  7.   

    楼上的正确,应该放在 OnKeyDown 事件中。