E2181 Redeklaration der Eigenschaft im OLE-Automatisierungsbereich nicht erlaubt (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Es ist nicht zulässig, die Sichtbarkeit einer Eigenschaft in einen Automatisierungsabschnitt zu stellen.


program Produce;

  type
    Base = class
      v : Integer;
      s: String;
    protected
      property Name : String read s write s;
      property Value : Integer read v write v;
    end;

    Derived = class (Base)
    public
      property Name; (* Name durch Redeklaration öffentlich sichtbar machen *)
    automated
      property Value;
    end;

begin
end.

In diesem Beispiel wird Name aus privater Sichtbarkeit in Base mittels Neudeklaration zu öffentlicher Sichtbarkeit in Derived gebracht. Dieser Vorgang wird für Value wiederholt, führt jedoch zu einem Fehler.


program Solve;

  type
    Base = class
      v : Integer;
      s: String;
    protected
      property Name : String read s write s;
      property Value : Integer read v write v;
    end;

    Derived = class (Base)
    public
      property Name; (* Name durch Redeklaration öffentlich sichtbar machen *)
      property Value;
    automated
    end;

begin
end.

Es ist nicht möglich, die Sichtbarkeit einer Eigenschaft für einen Automatisierungsabschnitt zu ändern. Daher liegt die Lösung dieses Problems darin, Eigenschaften von Basisklassen nicht in Automatisierungsabschnitten zu redeklarieren.