var
  Form1: TForm1;
  Bit: TBitmap;
  index:Integer=0;
  length:Integer=20;
  pos_x:array of Integer;
  pos_y:array of Integer;procedure TForm1.FormCreate(Sender: TObject);
begin
  d:=0;
  Bit:=TBitmap.Create;
  setLength(pos_x,length);
  setLength(pos_y,length);
end;procedure TForm1.Button3Click(Sender: TObject);
begin
pos_x[index]:=index;
pos_y[index]:=index;
Edit4.Text:=inttostr(index);
Edit1.Text:=inttostr(pos_x[index]);
Edit2.Text:=inttostr(pos_y[index]);
index:=index+1;
end;首先描述一下这段代码的含义,我在var之中声明了两个动态的数组pos_x、pos_y用来保存坐标信息,然后再TForm1.FormCreate之中设置他的大小,在另外一个过程TForm1.Button3Click之中为数组的元素复制,并在Edit之中显示出这个值。
我的本意是这样,可是问题是在TForm1.Button3Click之中的赋值出现了问题,当打印出这个值的时候显示的是0,没有赋值成功,不清楚这个是怎么回事,如果我再TForm1.FormCreate之中就为数组赋值,TForm1.Button3Click便可以打印出这个值,不知道这个是什么问题,希望能帮忙解决一下,谢谢

解决方案 »

  1.   

    晕!
    你第一次执行TForm1.Button3Click的时候肯定会显示0啊!  
    index:Integer=0;  
    你是从0开始的啊!
    第二次执行的TForm1.Button3Click才是index:=index+1这个值啊!
      

  2.   

    Button3Click时,index:=index+1;之前index初始为0
      

  3.   

    代码本身没什么问题。看看是不是别的什么地方出问题了。另外,你用的变量名称Index,Length与系统关键字可能会有冲突,不建议这样设置变量名。
      

  4.   

    第一次本来就是0嘛  初始的index=0
      

  5.   

    Edit4.Text:=inttostr(index);
    这个值多按几次也是0????