我想要某一个EDIT框中只能输入数字不能输入字符,或要求只能输入大写字母,具体语句应该如何写?
请大家帮忙!!

解决方案 »

  1.   

    还必须将 form 的 KeyPreview 属性更改为 true
    例:
    procedure TfrmMain.FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);begin
        edit1.Text:=inttostr(key);
        if (ssCtrl in Shift) and (key=85) then
           begin
              
           end;
    end;
      

  2.   

    昨天刚刚看到的方法:
        SetWindowLong(Edit1.Handle, GWL_STYLE,
                      GetWindowLong(Edit1.Handle, GWL_STYLE) or
                      ES_NUMBER); 详细请看:
    http://expert.csdn.net/Expert/topic/1830/1830978.xml?temp=.5564539
      

  3.   

    procedure TForm1.Edit1KeyPress(Sender:TObject;var Key:Char);
    begin
      if not(key in ['0'..'9'])and not(key in['A'..'Z']
      begin
        key:=chr[0];//将输入的字符置为空,相当于没有输入
        showmessage('输入错误,请输入数字或大写字符');
      end;
    end;
      

  4.   

    如果你是控制输入的长度 ,那么就可以mask……属性里面设置,具体的我忘记了然后如果你想控制输入的 字符,那就只好编程实现了!~~~
      

  5.   

    我觉得还是用maskedit比较方便
      

  6.   

    Edit 中只输入数字
        SetWindowLong(Edit1.Handle, GWL_STYLE,
                      GetWindowLong(Edit1.Handle, GWL_STYLE) or
                      ES_NUMBER);