Gerade nicht, Value Objekte sind per Definition unveränderlich, d.h. es gibt keine Setter um einzelne Eigenschaften zu ändern.
Sorry, stimmt. Aber gerade da ist es dann sinnvoll diese einmalig zu initialisieren und dann die Werte nur noch über read-only Properties zu ermitteln.
Delphi-Quellcode:
type
TPosition = record
private
FX, FY, FZ: Integer;
public
class function New(const aX, aY, aZ: Integer): TPosition; static;
property X: Integer read FX;
property Y: Integer read FY;
property Z: Integer read FZ;
end;
class function TPosition.New(const aX, aY, aZ: Integer): TPosition;
begin
Result.FX := aX;
Result.FY := aY;
Result.FZ := aZ;
end;
...
...