我有以下列表
type
PDetail = ^TDetail
TDetail = record
sId : String;
sLname : String;
end;
type
PRegisters = ^TRegisters;
TRegisters = record
sId : String;
sName : String;
sTitle : String;
tDetails : TList<PDetail>;
end;
问题是,我无法更新tDetails: TList <PDetail>;
,并尝试访问这些值之后,它为空。
我创建注册详细信息。
//Global Var
Registers : TList;
procedure CreateDetails;
var
reg : PDetail;
Detail : TList<PDetail>;
begin
Detail := TList<PDetail>.Create;
reg := New(PDetail);
reg^.sId := '01';
reg^.sLame := 'name name';
Detail.Add(reg);
reg := New(PDetail);
reg^.sId := '02';
reg^.sLame := 'name2 name2';
Detail.Add(reg);
reg := New(PDetail);
reg^.sId := '03';
reg^.sLame := 'name3 name3';
Detail.Add(reg);
UpdateDetails(Detail);
end;
使用子列表更新主列表
procedure UpdateDetails(_newDet : TList<PDetail>);
var
_aReg : PRegisters;
begin
_aReg := Registers.Items[3];
_aReg.sId := 'new value';
_aReg.sName := 'new value'
_aReg.sTitle := 'new value'
_aReg.tDetails : _newDet;
//Registers.Items[3] := _aReg; //not work
end;
检查新值。
procedure CheckValues;
var
_aReg : PRegisters;
test : String;
begin
_aReg := Registers.Items[3];
test := _aReg.sId;
test := _aReg.sName;
test := _aReg.sTitle;
//_aReg.tDetails.Count = 0 no records...
end;
为什么主注册表中的TList
字段未使用创建的子列表进行更新?怎么了?