默认情况下都会有这一声的。我给它添了如下代码,为的是恢复"全选"功能,此成功了,但仍然'叮'声依旧!
多谢指教,谢谢!procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
    if (shift=[ssctrl]) and (uppercase(chr(key))='A') then
    begin
      Edit1.SelectAll;
    end;
end;

解决方案 »

  1.   

    我的也没有
    我的是windows server 2003
      

  2.   

    procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
    var
      vWinControl: TWinControl;
    begin
      vWinControl := FindControl(Msg.hwnd);
      if not (vWinControl is TEdit) then Exit;
      case Msg.message of
        WM_KEYDOWN, WM_KEYUP:
        begin
          if ssCtrl in KeyDataToShiftState(Msg.lParam) then
            case Msg.wParam of
              Ord('A'): Handled := True;
            end;      case Msg.wParam of
            VK_RETURN, VK_ESCAPE: Handled := True;
          end;
          if Handled then
            vWinControl.Perform(Msg.message, Msg.wParam, Msg.lParam);
        end;
      end;
    end;
      

  3.   

    谢谢各位回答.
    我是win2000+sp4的,在做基于Edit的封装组件.
      

  4.   

    我的也没有
    我的是windows server 2003
      

  5.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    begin
        if (shift=[ssctrl]) and (uppercase(chr(key))='A') then
        begin
          Edit1.SelectAll;
          Key := #0;
        end;
    end;
      

  6.   

    不要在KeyDown里做,在KeyPress里做就不会有声音了
      

  7.   

    按上面教的写上:
    Key := 0;
    后,仍然无效.在KeyPress里写,好象无法判断是否按下了Ctrl键.
      

  8.   

    调个GETKEYSTATE之类的KEYBOARD API就知道按没按CTRL了。