那你还不如改用SpinEdit控件了

解决方案 »

  1.   

    这很简单呀,怎么了?看代码:
    procedure TForm1.Edit1Change(Sender: TObject);
    var
      mychar:pchar;
    begin
      mychar:= pchar(copy(edit1.text,edit1.selstart-1,1));
      if not (mychar[0] in ['0','1','2','3']) then
      begin
        edit1.Text :=copy(edit1.text,0,length(edit1.text)-1);
        edit1.SelStart :=length(edit1.text);
      end;
    end;
      

  2.   

    上面的代码只让edit接受0,1,2,3的输入,你可以根据自己的要求来作相应的变化,呵呵~~
      

  3.   

    在Edit的OnKeyPress事件里写:
    begin
      if Key not in [0..9] then
        Key := #0
    end;
      

  4.   

    在Edit的OnKeyPress事件里写:
    begin
      if not (Key  in ['0'..'9']) then
        Key := #0;
    end;
      

  5.   

    begin
      if (not (Key in ['0'..'9'])) and (Key <> #8) then
        Key := #0
    end; 
      

  6.   

    procedure TfrmFind.edtFromNoKeyPress(Sender: TObject; var Key: Char);
    begin
      if not (Key in ['0'..'9']) and not (Key = #8) then begin
        Key := #0;
        Beep;
      end;
    end;
      

  7.   

    在Edit的OnKeyPress事件里写:
    begin
      if not (Key  in [#8,'0'..'9']) then Key := #0;
    end; 
      

  8.   

    if not ( (chr(Key) in ['0'..'9']) or (key=VK_BACK) ) then  你的语句;
      

  9.   

    if (not (Key in ['0'..'9'])) and (Key <> #8) then  Key := #0   
      

  10.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      //只允许输入数字
      if Not (Key in ['0'..'9',#8,#13,#46]) then
        Key := #0;
    end;
      

  11.   

    你们有试过为什么当DBEDIT连接的是数字型的字段时,它不接受字符,但“E”却例外,为什么?
      

  12.   

    看一下TDBEdit的源代码你就明白了。