【发布时间】:2011-07-26 16:08:06
【问题描述】:
我需要创建一个包含 记录对象数组的 类,但尝试使用 SetLength 会引发访问冲突错误。
考虑以下带有水果的树对象示例。
type
TFruit = record
color: string;
weight: double;
end;
type
TObjectTree = class
Public
Fruits: array of TFruit;
constructor Create;
procedure AddFruit;
end;
在实现中,当尝试调整 Fruit 对象数组的大小或初始化为 nil 时会产生问题。
constructor TObjectTree.Create;
begin
inherited Create;
Fruits:=nil; //Raises an error
end;
procedure TObjectTree.AddFruit(FruitColor: string; FruitWeight: integer);
begin
SetLength(Fruits, Length(Fruits)+1); //Raises an error (when I comment Fruits:=nil; in the constructor)
Fruits[Length(Fruits)].color:=FruitColor;
Fruits[Length(Fruits)].weight:=FruitWeight;
end;
如何在类中使用动态数组?
【问题讨论】:
标签: arrays delphi class dynamic