E2181 Redeklaration der Eigenschaft im OLE-Automatisierungsbereich nicht erlaubt (Delphi)
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.