typ
  B = Array of A;
  A = record
   x: integer
   y: integer
end;var
  B1: B
begin
  SetLength(B, 10);    //分配数组空间
                       //这里缺什么函数?  
  B[0].x:= 123;        //出错   end;

解决方案 »

  1.   

    SetLength(B, 10);    //分配数组空间
                           //这里缺什么函数?  
      B[0].x:= 123;        改为
      SetLength(B1, 10);    //分配数组空间
                           //这里缺什么函数?  
      B1[0].x:= 123;        
      

  2.   

    不好意思,我写错了,原来就是 SetLength(B1, 10)我调试过的,SetLength(B1, 10)后,B1是有10个元素的数组,每个元素值为nil
      

  3.   

    type 
     
      A = record
       x: integer;
       y: integer;
    end;
     B = Array of A;
    var
      B1: B
    begin
      SetLength(B1, 10);    //分配数组空间
                           //这里缺什么函数?  
      B1[0].x:= 123;       
    end;
      

  4.   

    我也调试过的(Delphi7),SetLength(B1, 10)后,B1是有10个元素的数组,每个元素值的x,y都是0
      

  5.   

    那可能是Variant作怪了
    完全的record是
    A = record
      x: integer;
      y: integer;
      info: Variant;
      obj: Variant;
      name: string
    end;请指教,谢谢
      

  6.   

    var 一个出来,不就有一个实例了吗?这些不是类,不是什么指针之类的东西。
    array of .... 就当一个数祖来处理不就 OK 了吗。
      

  7.   

    搞不清楚delphi的数据类型,闷
    多谢各位
      

  8.   

    数组本身是一个指针,你试着把你的记录类型声明为指针
      PA =^A;
      A = record
       x: integer
       y: integer
    end;
    通过NEW进行分配内存
      

  9.   

    用GetMem分配内存
    用FreeMem释放内存.还不如直接写个类让它来管理算了.