if not (key in [49]) then    
           key:=0;//不起作用比如:输入“110”,“0”不符合,则回退变为“11”。

解决方案 »

  1.   

    if key <> 49 then    
      key := 0;
      

  2.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key <> #49 then
        key := #0;
    end;
      

  3.   

    可在OnKeyPress事件中:
      if key='a' then
        key:=#0;
      

  4.   

    你可以判断Key是不是要输入的,如果不是则赋空值就行了。
    case key of
      '0'..'9',Char(vk_delete),char(vk_Return),char(vk_back):;
      else
        key := #0
    end;
      

  5.   

    我是要在onkeydown事件里写,因为有可能按了shift,ctrl什么的。onkeypress我当然知道怎么写。但是现在必须写在onkeydown里。有方法吗?
      

  6.   

    在Edit1的OnKeyDown事件中,如果输入非法字符,则将其该字符删除:
      if key=#49 then
        Edit1.Text:=Copy(Edit1.Text,1,Lenth(Edit1.text)-1);