type 
  TB=Class
  c:integer;
  end;  TA=class
  public
  a:integer;
  b: array of TB;
  end;
var
ppp: array of TA
怎么给ppp赋值
谢谢

解决方案 »

  1.   

    A:=TA.create;
    setlength(ppp,2)
    ppp[0]=A;
      

  2.   

    //怎么给ppp赋值SetLength(ppp, 10);     // 由于ppp定义为动态数组,所以要先分配大小
    for i:=0 to High(ppp) do
    begin
      ppp.a := i;           // 给成员变量a赋值
      SetLength(b, 1);      // 同样b也是动态数组,要先分配大小再给它(们)的成员变量赋值
      b[0].c := i;          
    end;
      

  3.   

    首先通过 Setlength分配一个空间!然后赋值!一个值:
    setlength(ppp,1)
    ppp[0]=A;如已存在的值,添加一个值:
    setlength(ppp,length(A)+1)
    ppp[High(ppp)]=A;
      

  4.   

    更正SetLength(ppp, 10);     // 由于ppp定义为动态数组,所以要先分配大小
    for i:=0 to High(ppp) do
    begin
      ppp[i] := TA.Create;
      with ppp[i] do
      begin
        a := i;             // 给成员变量a赋值
        SetLength(b, 1);    // 同样b也是动态数组,要先分配大小再给它(们)的成员变量赋值
        b[0] := TB.Create;
        b[0].c := i;          
      end;
    end;// 最后要记得释放对象!b[0].Free; for i:=0 to High(ppp) do ppp[i].Free;
      

  5.   

    ok 通过了,上午写晕头了,忘记create了,呵呵