Delphi 2010
@H_404_2@如何修改TList<记录>价值?
type TTest = record a,b,c:Integer end; var List:TList<TTest>; A:TTest; P:Pointer; .... .... List[10] := A; <- OK List[10].a:=1; <- Here compiler error : Left side cannot be assined to P:=@List[10]; <- Error: Variable requied
解决方法
A := List[10]; A.a := 1; list[10] := A;
您不必对对象执行此操作,因为它们是引用类型(通过编译器在内部管理的指针访问以使其不受限制),但记录是值类型,因此它不会以这种方式工作.