E2233 Auf Eigenschaft '%s' kann hier nicht zugegriffen werden (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Sie haben versucht, über einen Klassenreferenztyp auf eine Eigenschaft zuzugreifen. Der Zugriff auf die Felder oder Eigenschaften einer Klasse über eine Klassenreferenz ist aber nicht möglich.


program Produce;

  type
    TBase = class
    public
      FX : Integer;
      property X : Integer read FX write FX;
    end;

    TBaseClass = class of TBase;

  var
    BaseRef : TBaseClass;
    x: Integer;

begin
  BaseRef := TBase;
  x := BaseRef.X;
end.

In diesem Beispiel führt der Versuch, auf die Eigenschaft X zuzugreifen, zur Ausgabe einer Fehlermeldung durch den Compiler.


program Solve;

  type
    TBase = class
    public
      FX : Integer;
      property X : Integer read FX write FX;
    end;

    TBaseClass = class of TBase;

  var
    BaseRef : TBaseClass;
    x: Integer;

begin
  BaseRef := TBase;
end.

Das Problem lässt sich nur durch Entfernen des Fehler verursachenden Eigenschaftszugriffs aus dem Quelltext lösen. Wenn ein Zugriff auf die Eigenschaften oder Felder einer Klasse erforderlich ist, erzeugen Sie eine Instanzvariable für die betreffende Klasse und greifen über diese auf die Eigenschaft bzw. auf das Feld zu.