Tendrías que completar tus tipos de datos con un apuntador al registro:
Código Delphi
[-]
type
PItem = ^TItem;
TItem = record
...
end;
Entonces, manejarías los elementos del TList así:
Código Delphi
[-]
var
Item: TItem;
begin
Lista.Items.Add(@Item);
Item := PItem(Lista.Items[i])^;
end;
// Saludos