type  
  TMyRecord=record
    ID : integer;   //像素点
    Vx: real; // datetime;
    Vy: real; // Y实际值
  end;
var pixv:Array[0..1024] of TMyRecord;
使用:
     with pixv[n] do
     begin
      ID:=Sx;
      Vx:=Vx;
      Vy:=Vy;
     end;
一切ok
但是
var pixv:Array of TMyRecord;
在使用时出错?
why????????///
回答正确给全分!

解决方案 »

  1.   

    对于
    var pixv: array of TMyRecord;
    的声明,使用前必须分配SetLength(pixv, x); 然后才可以pixv[n] //n < x
      

  2.   

    动态数组需要初始化才能使用!
    采用
      SetLength(TMyRecord, size);
      

  3.   

    对啊! 你没有给pixv分配内存了! :(
    分配了再能使用,用完了还要记得释放哦! (pixv := nil)
      

  4.   

    你使用的是动态数组,使用前必须要分配内存使用SetLength函数
      

  5.   

    type  
      TMyRecord=record
        ID : integer;   //像素点
        Vx: real; // datetime;
        Vy: real; // Y实际值
      end;procedure TForm1.Button3Click(Sender: TObject);
    var
      MyRec: array of TMyRecord;
      MyRecord: array[0..1024] of TMyRecord;
      i: Integer;
    begin
    //静态赋值 数组长度为1025
      for i := Low(MyRecord) to High(MyRecord) do
        with MyRecord[i] do
        begin
          ID := i;
          Vx := i;
          Vy := i;
        end;//动态设置长度并赋值 数组长度为1025
      SetLength(MyRec, 1025);
      for i := Low(MyRec) to High(MyRec) do
        with MyRec[i] do
        begin
          ID := i;
          Vx := i;
          Vy := i;
        end;
    end;
      

  6.   

    动态数组需要分配空间,
    如果是我,我就用TList来管理