Ach so: und die Delphi-Version angeben.
Aktuellere Delphi-Versionen sollten da auch eine entsprechende Fehlermeldung ausgeben.
Du schreibst nur in einer Kopie des Records rum, welche danach nicht zurückgespeichert, sondern einfach verworfen wird. An den "eigentlichen" Recordvariablen änderst du also nichts und somit bleibt der alte Wert auch erhalten.
Fazit:
- entweder den Record rauskopieren, ändern und neu in der Liste abspeichern
- oder auf Daten-Objekte umstellen (TObjectList, eine Persistent-Collection oder Dergleichen)
- oder einen Pointer auf die Records besorgen und darüber den Inahlt ändern