E2149 Klasse besitzt keine Standardeigenschaft (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Sie haben eine Klassen-Instanz-Variable in einem Array-Ausdruck benutzt, aber der Klassentyp hat keine Standard-Array-Eigenschaft deklariert.
program Produce; type Base = class end; var b : Base; procedure P; var ch : Char; begin ch := b[1]; end; begin end.
In diesem Beispiel wird eine Fehlermeldung ausgelöst, da Base keine Array-Eigenschaft deklariert und b selbst kein Array ist.
program Solve; type Base = class function GetChar(i : Integer): Char; property data[i : Integer]: Char read GetChar; default; end; var b : Base; function Base.GetChar(i : Integer): Char; begin GetChar := 'A'; end; procedure P; var ch : Char; begin ch := b[1]; ch := b.data[1]; end; begin end.
Wenn Sie eine Standard-Eigenschaft für eine Klasse deklariert haben, können Sie die Klassen-Instanz-Variable in Array-Ausdrücken verwenden, als wäre die Klassen-Instanz-Variable selbst ein Array. Eine andere Möglichkeit liegt darin, die Bezeichnung der Eigenschaft für den eigentlichen Array-Zugriff zu benutzen.
Anmerkung: Wenn die Hinweisfunktion aktiviert ist, erhalten Sie zwei Warnmeldungen mit dem Inhalt, dass der an ch zugewiesene Wert niemals benutzt wird.