1、怎样限制用户在Edit中只充许输入三位整数。
2、另外请问怎么给一个001的整数,自增后,不会变成2,而是002 。

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
        begin
          if not (key in ['0'..'9','.',#8]) then
          begin
            key:=#0;
            Messagebeep(0);
          end;
          if length(Edit1.Text)>3 then
          begin
            key:=#0;
            Messagebeep(0);
          end;      
        end;
      

  2.   

    窗体的OnCreate事件中
      SetWindowLong(Edit1.Handle, GWL_STYLE,
          GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
    把Edit1.MaxLength设置为3
    002不是数值,是字符串
    要输出的话,用FormatFloat
      

  3.   

    在数据库里设置它的类型为 nvarchar 然后位数为三  就可以了 在输入的过程中判断它的位数  OK
      

  4.   

    Edit1.MaxLength:=3;在KeyPress事件中加入
    if not(Key in ['0'..'9',#8]) then
        Key := #0;
    其中#8就是可以后退的
      

  5.   

    Edit1.MaxLength:=3;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      case Integer(Key) of
        48..57: ;
        13:     ;
        8:      ;
        else Key:=Char(0);
      end;
    end;
      

  6.   

    我支持二楼的(*回复人: delphiseabird(沙鸥)*)回复 :  
     
       procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
        begin
          if not (key in ['0'..'9','.',#8]) then
          begin
            key:=#0;
            Messagebeep(0);
        exit;
          end;
          if length(Edit1.Text)>3 then
          begin
            key:=#0;
            Messagebeep(0);
        exit;
          end;      
        end;
      
     
      

  7.   

    都不错,只是有些需要小小的调整一下,hellolongbin(一个人)的应该可以
    第二个问题,你可以先自增,然后判断如果是一位数,然后用字符串的操作,加上00,两位数,就加上0,三位数就不用处理。
      

  8.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
        begin
          if not (key in ['0'..'9',#8]) then
          begin
            key:=#0;
          end;
          if length(Edit1.Text)>3 then
          begin
            key:=#0;
          end;      
        end;
      

  9.   

    #8就是退格呀,你不能改是不是因为你的Text的默认值Edit1有没有删掉呀,就是说它已经超长了
      

  10.   

    TO delphiseabird(沙鸥) :顺便在你的第一个IF里加个EXITTO 楼主
    好象不愿意试试API的方法,也是最有效率的方法
      

  11.   

    (加了Exit还怎么限制数字的长度呀)
    SetWindowLong
    (Edit1.Handle, GWL_STYLE,GetWindowLong(Edit1.Handle, GWL_STYLE)or ES_NUMBER);也是可以的
      

  12.   

    只能用del键删除,不能用<- 键删除
      

  13.   

    回复人: delphiseabird(沙鸥) ( ) 信誉:105  2004-12-06 13:50:00  得分: 0  
     
     
       (加了Exit还怎么限制数字的长度呀)
    SetWindowLong
    (Edit1.Handle, GWL_STYLE,GetWindowLong(Edit1.Handle, GWL_STYLE)or ES_NUMBER);也是可以的================================
     
    我是说第一个IF中...key已经等于#0了,就没必要再去检查长度了,习惯而已^^