E2178 Méthodes dynamiques et gestionnaires de messages non autorisés dans la section OLE Automation (Delphi)

De RAD Studio
Aller à : navigation, rechercher

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

Vous avez mis, de manière incorrecte, une méthode dynamique ou message dans une section 'automated' d'une déclaration de classe.


program Produce;

  type
    Base = class
    automated
      procedure DynaMethod; dynamic;
      procedure MessageMethod(VAR msg : Integer); message 151;
    end;

    procedure Base.DynaMethod;
    begin
    end;

    procedure Base.MessageMethod;
    begin
    end;

begin
end.

Vous ne pouvez pas avoir de déclaration de méthode dynamic ou message dans une section OLE automation d'une classe. Ainsi, les deux déclarations de méthode du programme ci-dessus produisent des erreurs.


program Solve;

  type
    Base = class
      procedure DynaMethod; dynamic;
      procedure MessageMethod(VAR msg : Integer); message 151;
    end;

    procedure Base.DynaMethod;
    begin
    end;

    procedure Base.MessageMethod;
    begin
    end;

begin
end.

Il existe plusieurs moyens de supprimer cette erreur du programme. D'abord, vous pouvez déplacer toute déclaration produisant cette erreur hors de la section automated, comme cela a été fait dans cet exemple. Vous pouvez aussi enlever les attributs dynamic ou message de la méthode. Mais, bien sûr, si vous enlevez ces attributs, vous n'aurez pas le comportement désiré, mais l'erreur sera supprimée.