wär aber dennoch schön, wenn in Delphi ein als Konstante deinierter Record wirklich eine Konstante wär
hab noch etwas weitergetestet und bei den Klassenoperatoren funktioniert es zumindestens schonmal:
Delphi-Quellcode:
Type TMyRecord = Record
Inhalt: Integer;
Class Operator Implicit(Const x: Integer): TMyRecord;
Procedure MySet(x: Integer);
end;
Class Operator TMyRecord.Implicit(Const x: Integer): TMyRecord;
Begin Result.Inhalt := x; End;
Procedure TMyRecord.MySet(x: Integer);
Begin Inhalt := x; End;
Procedure TForm2.FormCreate(Sender: TObject);
Var A: TMyRecord;
Const B: TMyRecord = (Inhalt: (123));
Begin
A := 456;
B := 456; // geht nicht
// [Pascal Error] Unit2.pas(45): E2064 Left side cannot be assigned to
A.MySet(456);
B.MySet(456); // geht !!!
If B.Inhalt = A.Inhalt Then Halt;
// hier müßte B.Inhalt 123 sein, aber es ist 456
End;