La question plus ou moins dit tout. Compte tenu de la structure d'enregistrement suivante:Dois-je allouer et libérer des enregistrements lors de l'utilisation de TList <T> dans Delphi?
type
TPerson = record
Name: string;
Age: Integer;
end;
PPerson = ^TPerson;
TPersonList = TList<TPerson>;
Le code suivant est-il valide?
procedure ReadPeople(DataSet: TDataSet; PersonList: TPersonList);
begin
PersonList.Count := DataSet.RecordCount;
if DataSet.RecordCount = 0 then
Exit;
DataSet.First;
while not DataSet.Eof do begin
PersonList[DataSet.RecNo].Name := DataSet.FieldByName('Name').AsString;
PersonList[DataSet.RecNo].Age := DataSet.FieldByName('Age').AsInteger;
DataSet.Next;
end;
end;
Dois-je utiliser GetMem
/FreeMem
pour allouer et gratuit enregistre une instance de TPersonList
, ou suis-je libre d'accéder directement aux entrées TPersonList
directement? Mon instinct dit que le code devrait être valide, même si je ne suis pas sûr s'il y a des rides liées à l'initialisation ou la finalisation de l'enregistrement.
Génial. Je vous remercie! Maintenant, je dois décider si les enregistrements ou les classes auraient plus de sens à utiliser pour mes objets de gestion. – afrazier