E2146 Standardwerte müssen vom Typ Ordinal, Pointer oder vom Typ small Set sein (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Sie haben eine Eigenschaft festgelegt, die eine default-Klausel enthält, aber der Typ der Eigenschaft kann nicht zusammen mit Standardwerten benutzt werden.
program Produce; type VisualGauge = class pos : Single; property Position : Single read pos write pos default 0.0; end; begin end.
Das Programm erstellt eine Eigenschaft und versucht, ihr einen Standardwert zuzuweisen; da der Typ der Eigenschaft jedoch keine Standardwerte zulässt, wird eine Fehlermeldung ausgegeben.
program Produce; type VisualGauge = class pos : Integer; property Position : Integer read pos write pos default 0; end; begin end.
Wenn dieser Fehler auftritt, gibt es zwei einfache Lösungen: Zum einen kann die Definition des Standardwertes entfernt werden, und zum anderen kann der Typ der Eigenschaft in einen Typ geändert werden, der einen Standardwert zulässt. Es kann allerdings vorkommen, dass Ihr Programm nicht so einfach in Ordnung zu bringen ist; bedenken Sie den Fall, wenn Sie eine zu große Mengen-Eigenschaft verwenden – in dieser Situation müssen Sie Ihr Programm sorgfältig untersuchen, um die beste Lösung für das Problem feststellen zu können.