自定义了一个类,在类中有一个成员是动态数据类型,在一个方法中对这个成员进行赋值,但在编译时在进行初始化的地方出错,出错信息为:Constant object cannot be passed as var parameter。type DArrayString = array of string;
type
  TE00 = class(TE001)
    function SetArrayLen(ArrayCount: Integer):boolean;
  private
    FItemName: DArrayString;
  public
    property ItemName: DArrayString read FItemName write FItemName;
  end;function TE00.SetArrayLen(ArrayCount: Integer):boolean;
begin
  SetLength(ItemName, ArrayCount);
end;

解决方案 »

  1.   

    SetLength(FItemName, ArrayCount); 
      

  2.   

    SetLength(FItemName, ArrayCount); 
    不能直接给属性赋值的,你既然定义了
    read FItemName write FItemName
    那么直接对FitemName进行读写就可以了
      

  3.   

    SetLength(FItemName, ArrayCount);  
    分配空间,你要赋值的话用
     property ItemName: DArrayString read FItemName write FItemName; ItemName[0] := '值'