???请问给定一个值001,如何在点Button后在Edit文本自动加一并显示002 ???如何写代码,主要前面两个零的格式,如果给定值为0012,那么点按钮后在Edit中出现的就是0013!代码如何写?

解决方案 »

  1.   

    str := '0012'
    newstr := inttostr(strtoint(str) + 1)
    while len < length(str) do
    begin
      newstr := '0' + newstr;
    end;
      

  2.   


    var
      i:integer;
    begin
      i := StrToInt('001');
      i := i+1;
      ShowMessage(Format('%.5d',[10]));//格式化为5个长度,00002
    end;
      

  3.   

    修改为
    ShowMessage(Format('%.5d',[i]));//格式化为5个长度,00002
      

  4.   

    我的长度是随str=001 长度变化的,长度不是固定的!
      

  5.   


    是你说的不明白吧,你的001是string还是integer吖,楼上的都给出了那你还不如说001是string 或许有0001001是integer, 还有 00001 是要5位的还是说其实是前面还有,如 A001
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    VAR
      s:string;
      substr:string;
      i:integer;
      a:integer;
      temp:string;
    begin
      s:=edit1.Text;
      temp:=s;
      a:=0;
      for i:=0 to length(s)-1 do
      begin
        substr:=Copy(s, i, 1);
        if (substr='0') then
        begin
          a:=a+1;
        end;
      end;
      s:=inttostr(strtoint(s)+001);
      edit1.Text:=Copy(temp,1,a-1)+s;
    end;
      

  7.   

    这个嘛  简单
      len: integer;
      tmp: integer;
      tmpstr: string
      begin
        len := length('0012');
        tmp := strtoint('0012');
        tmp := tmp + 1;
        tmpstr := strtoint(tmp);
        case length(tmp) of 1:
          tmpstr := '000' + tmpstr;
        2: tmpstr := '00' + tmpstr;
        3: tmpstr := '0' + tmpstr;
        //4: tmpstr := '' + tmpstr;
        end;
       edit1.text := tmpstr;
      end; 简单明了,楼主给分吧
      

  8.   

    错了 不好意思,case length(tmpstr) of ....
      

  9.   

    虽然只有10分,也给你写点代码吧,谁叫现在经济危机呢!var
      i,len:integer;
    begin
      len := Length(Trim(Edit1.Text));
      i := StrToInt(Edit1.Text);
      i := i+1;
      ShowMessage(Format('%.'+IntToStr(len)+'d',[i]));//格式化为5个长度,00002
    end;不要告诉我上面的代码不能运行,我试验过了才考过来的。
    界面上放个TEdit控件吧