以前用DELPHI6,前一段时间扔下了。现在用DELPHI7,有点小困难,请大家帮忙!!谢谢!!
在下面的一段代码中,我想实现条码校验位的计算。在执行的时候老提示一个“Value assigned to 'i' never used”但我的I用了啊!!
在D6中从来没遇到过这种情况,是D7的新东东???、请大虾帮忙,同时指点一下学习DELPHI7中的一些注意事项。不胜感激!!!!代码如下:procedure TForm1.Button1Click(Sender: TObject);
var
  num: array of integer;
  i,bcd,j:integer;
  s:string;
begin
     bcd:=0;
     i:=0;
     j:=0;
     num:=null;
     s:=form1.Edit1.Text;
    // label5.Caption:=s;  //测试用
     if edit1.Text<>'' then
       begin
            for i :=0 to length(s) do
               begin
                  num[i]:=strtoint(s[i]) ;
                  j:=j+1 ;
                  if j mod 2 =0  then
                        bcd:=bcd+num[i]*3
                   else
                        bcd:=bcd+num[i];               end;
             bcd:=(10-bcd mod 10) mod 10 ;
             edit2.Text:=inttostr(bcd);   //校验位
             edit3.Text:=edit1.Text+edit2.Text;    //完整条码        end
     else
        showmessage('老大!条码是空的!!');end;

解决方案 »

  1.   

    begin
         bcd:=0;
         i:=0;//这个I不要赋值的。
         j:=0;
         num:=null;
         s:=form1.Edit1.Text;
      

  2.   

    begin
         bcd:=0;
         //i:=0;//这个I不要赋值的。把这行去掉
         j:=0;
         num:=null;
         s:=form1.Edit1.Text;
      

  3.   

    我试过了!!看来别的地方还有问题!!出现“Invalid argument”,别没有什么提示!!请教!!
      

  4.   

    出错后,停在AUTOBCD的END上(实例名为BCD)
      

  5.   

    var
      num: array of integer;
      i,bcd,j:integer;
      s:string;
    begin
         bcd:=0;
         j:=0;
         setlength(num,80);
         s:=form1.Edit1.Text;     for i:=0 to 79 do
         begin
           num[i]:=0;
         end;
        // label5.Caption:=s;  //测试用
         if edit1.Text<>'' then
           begin
                for i :=0 to length(s)-1 do
                   begin
                      num[i]:=strtoint(s[i+1]) ;
                      j:=j+1 ;
                      if j mod 2 =0  then
                            bcd:=bcd+num[i]*3
                       else
                            bcd:=bcd+num[i];               end;
                 bcd:=(10-bcd mod 10) mod 10 ;
                 edit2.Text:=inttostr(bcd);   //校验位
                 edit3.Text:=edit1.Text+edit2.Text;    //完整条码        end
         else
            showmessage('老大!条码是空的!!');
    end;