Delphi 2010 So ändern Sie TList & lt; aufnehmen & gt; Wert?
%Vor%Sie müssen dies nicht mit Objekten tun, da es sich um Referenztypen handelt (Zugriff über einen Zeiger, den der Compiler intern verwaltet, um es aus Ihren Haaren zu lassen), aber Datensätze sind Werttypen, so dass sie nicht funktionieren auf diese Weise.
Sie haben einen Haken mit der Verwendung von Datensätzen gefunden.
Betrachten Sie diesen Code:
%Vor%Wie Ihr Code für den Compiler aussieht, ist das folgende:
%Vor%Der Compiler teilt Ihnen mit der Fehlermeldung mit, dass die Zuweisung sinnlos ist, da er nur einem temporären Datensatzwert einen neuen Wert zuweist, der sofort vergessen wird.
Außerdem ist @List[10]
ungültig, weil List[10]
wiederum nur einen temporären Datensatzwert zurückgibt, daher ist es ziemlich sinnlos, die Adresse dieses Datensatzes zu nehmen.
Das Lesen und Schreiben des gesamten Datensatzes ist jedoch in Ordnung.
Also zusammenfassend:
%Vor%Wenn Sie Objekte in diesem Formular bearbeiten müssen, ist es besser, TObjectList anstelle von TList zu verwenden und die Struktur als Klasse und nicht als Datensatz zu definieren:
%Vor%