Eine Sache, die vllt immer etwas kurz kommt:
Records sind da, um sich eigene Datentypen zu bauen. Zum Beispiel eine Zahl mit unendlich vielen Stellen.
Da sie Operatoren besitzen können, kann das komplett transparent passieren. Also kann man sich selbst einen Typen schaffen, der sich genauso natürlich verhält, wie es Integer tut.
Außerdem gibt es ab & zu die Notwendigkeit Speicherbereiche exakt abzubilden. Zum Beispiel weil man eine
DLL-Funktion aufruft, die Daten in einer genauen Struktur erwartet, oder weil man in ein genau definiertes binäres Dateiformat schreibt.
Ansonsten fällt mir jetzt nix ein, für das ein Record tatsächlich, auf die gesamte Projekt-Lebenszeit[1], irgendeinen Sinn macht.
Wie ich bereits in einem anderem Thread schrieb: Wer Records benutzt um Objekte oder Entitäten abzubilden, weil er keinen Bock auf Speichermanagement hat, der hat sich für die falsche Laufzeitumgegung entschieden. Denn derjenige will ganz offensichtlich eigentlich eine Umgebung mit Unterstützung für Garbage-Collection verwenden.
In Delphi hat man nunmal manuelle Speicherverwaltung für Klassen, und Kalssen sind in Delphi das einzge, was auf Dauer in der Lage ist, Objekte und Abläufe abzubilden.
Wer das nicht mag, sollte sich genau überlegen, was das eigentlich für ihn bedeutet, oder ob er sich nicht mit
wirklichen OOP anfreunden will.
[1] nicht nur bis man die aktuelle Methode geschrieben hat