E2176 Type illégal dans la section OLE Automation : '%s' (Delphi)

De RAD Studio
Aller à : navigation, rechercher

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

<nomtype> n'est pas un type autorisé dans une section OLE automation. Seul un petit sous-ensemble des types du langage Delphi sont autorisés dans les sections automation.


program Produce;

  type
    Base = class
      function GetC : Char;
      procedure SetC(c : Char);
    automated
      property Ch : Char read GetC write SetC dispid 151;
    end;

  procedure Base.SetC(c : Char);
  begin
  end;

  function Base.GetC : Char;
  begin GetC := '!';
  end;

begin
end.

Puisque le type caractère n'est pas autorisé dans la section 'automated', la déclaration de 'Ch' produira une erreur lors de la compilation.


program Solve;

  type
    Base = class
      function GetC : String;
      procedure SetC(c : String);
    automated
      property Ch : String read GetC write SetC dispid 151;
    end;

  procedure Base.SetC(c : String);
  begin
  end;

  function Base.GetC : String;
  begin GetC := '!';
  end;

begin
end.

Il y a deux façons de résoudre ce problème. La première est de déplacer la déclaration incriminée hors de la section 'automated'. La deuxième est de changer le type incriminé en un type autorisé dans les sections 'automated'.