自定义了一个类,在类中有一个成员是动态数据类型,在一个方法中对这个成员进行赋值,但在编译时在进行初始化的地方出错,出错信息为: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;
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;
不能直接给属性赋值的,你既然定义了
read FItemName write FItemName
那么直接对FitemName进行读写就可以了
分配空间,你要赋值的话用
property ItemName: DArrayString read FItemName write FItemName; ItemName[0] := '值'