"Historisch" gesehen waren records einmal Klassen, die nur Eigenschaften hatten (keine Methoden etc.). Allerdings sind diese beiden Datentypen immer mehr zusammengrückt, weswegen die Abgrenzung inzwischen etwas schwerer zu verstehen ist. Manchmal wird (auch eher historisch bedingt) das eine oder andere von APIs vorgegeben. Ich denke nicht, dass da man eine allgemeine Regel formulieren sollte, wann man was benutzt. "Falsch" ist keines von beiden.
Hier etwas zu Records:
https://www.delphi-treff.de/object-p...datentypen/#m9
Und hier was zu Klassen:
https://www.delphi-treff.de/object-p...n-und-objekte/
Klassenfunktionen sind übrigens Funktionen, die aufgerufen werden können, ohne dass ein Objekt einer Klasse erzeugt werden muss. Damit kann man natürlich innerhalb so einer Klassenfunktion nicht auf Variablen der Klasse zugreifen, weil ja kein Speicher reserviert wurde (d.h. kein Objekt erstellt).