E2181 Redéclaration de propriété non autorisée dans la section OLE Automation (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Une propriété n'est pas autorisée à être redéclarée dans une section automated.


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; (* Déplace Name vers une visibilité public par redéclaration *)
    automated
      property Value;
    end;

begin
end.

Dans l'exemple ci-dessus, Name est déplacé depuis la visibilité private dans Base vers la visibilité public dans Derived par redéclaration. La même idée est essayée sur Value, mais produira une erreur.


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; (* Déplace Name vers une visibilité public par redéclaration *)
      property Value;
    automated
    end;

begin
end.

Il n'est pas possible de changer la visibilité d'une propriété dans une section automated, cependant la solution à ce problème est de ne pas redéclarer de propriétés de classes de base dans des sections automated.