用一的TEdit做字符输入控件,每次回车完成输入,计算机会Beep一声,好象出错一样,
如果输入很多数据时,Beep不停!很烦了!
TEdit KeyDown,KeyUp不写任何代码也有这种情况,
请大虾指教,成功50分马上给!

解决方案 »

  1.   

    onkeypress事件中写:
    if key = #13 then 
    begin
      按ENTER(输入完成后应当做的事情;
      key := #0;
    end;
      

  2.   

    procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char); 
      begin 
        if key = #13 then 
           key := #0; 
      end; 
      
      procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; 
        Shift: TShiftState); 
      var 
        TmpCtrl: TWinControl; 
        ETmp: TKeyPressEvent; 
      begin 
      
        if key = 13 then 
          begin 
            TmpCtrl := ActiveControl; 
            if TmpCtrl is TCustomMemo then exit; 
      
            if TmpCtrl is TEdit then 
              begin 
                if assigned(TEdit(TmpCtrl).onKeyPress) then 
                  ETmp:= TEdit(TmpCtrl).OnKeyPress; 
                TEdit(TmpCtrl).OnKeyPress := EditKeyPress; 
              end; 
      
            repeat 
              TmpCtrl:= FindNextControl(TmpCtrl,true,true,false); 
            until (TmpCtrl is TCustomEdit) or 
            (TmpCtrl is TCustomComboBox) or 
            (TmpCtrl is TCustomListBox) or 
            (TmpCtrl is TCustomCheckBox) or 
            (TmpCtrl is TRadioButton); 
      
            if TmpCtrl is TEdit then 
              begin 
                if assigned(ETmp)  then 
                  TEdit(TmpCtrl).OnKeyPress := ETmp; 
              end; 
      
            TmpCtrl.SetFocus ; 
          end; 
      
      end; 
      

  3.   

    appache57(虾米) 的方法简单有效; key=13 是 RETURN,key=0是按的什么键呀
    回答!马上给分了!!
      

  4.   

    楼上说的对!
    key=#0 无任何操作。
      

  5.   

    if key = #13 then
      begin
       //key := #0;
         Perform(WM_NEXTDLGCTL, 0, 0);
      end;
    我试了,把key=#0去掉与不去都不会叫,原来我也见过叫的
      

  6.   

    可以的,是一个 api函数
    ,我帮你找找阿