Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.112 Beiträge
 
Delphi 12 Athens
 
#20

AW: Redord zu TStringlist hinzufügen

  Alt 13. Jun 2017, 00:07
Selbst wenn es funktionieren würde, würde es dich nicht helfen, denn das "Result" ist eine Kopie des Inhalts.

Man kann der TList<> ein neues Items-Property verpassen, welches einen Pointer raus gibt, der auf das Items im internen Record zeigt.
Ist natürlich nicht standardmäßig eingebaut, da es ein Sonderfall und außerdem "unsicher" ist.

Dann doch eher die TList abbauen und veränderbare Felder als eigene Property einbauen
und intern dann jeweils

Delphi-Quellcode:
procedure SetFeldAbc(Index: Integer; Value: TAbc);
var
  Temp: T;
begin
  //InternesArray[Index].Abc := Value;
  Temp := Items[Index];
  Temp.Abc := Value;
  Items[Index] := Temp;
end;
Du willst einen Record, also mußt du auch mit den Nachteilen leben.


Alternativ kann man auch ein TArray<TDeinRecord> verwenden.
Aber die Arraymanipulation (mit Ausnahme des Copy und einer binären Suche für sortierte Arrays) sind im "älteren" Delphi noch spärlich integriert, vorallem Delete und Insert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (13. Jun 2017 um 00:13 Uhr)
  Mit Zitat antworten Zitat