Ja, leider gibt es für Records keinen automatischen "Constructor".
Es kann aber gern gevotet werden:
http://qc.embarcadero.com/wc/qcmain.aspx?d=82524
Allerdings nutzt du ein dynamisches Array, welches dennoch automatisch initialisiert wird.
Bei meinen Operator-Records nutze ich deshalb
gerne notgedrungen solche Typen, wie dyn. Arrays, Strings oder Interfaces, als Marker, wenn ich noch andere "uninitialisierte" Typen verwende, wie z.B. dein FMinus (Boolean).
Sind diese nil (oder ''), dann wurde der Record noch nicht initialisiert, nun wird also in allen Recordmethoden/Operatoren am Anfang eine Prüfmethode eingebunden, welche auf eine Initialisierung prüft.
Delphi-Quellcode:
procedure TVLI.InitCheck;
begin
if FVLIAr = nil then begin
SetLength(FVLIAr, 1);
FVLIAr[0] := 0;
FMinus := false;
end;
end;