E2217 Le champ publié '%s' n'est pas un type classe ou interface (Delphi)

De RAD Studio
Aller à : navigation, rechercher

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

Une tentative a été effectuée pour publier un champ dans une classe qui n'est pas une classe ni un type interface.


program Produce;

  type
    TBaseClass = class
    published
      x: Integer;
    end;
begin
end.

Le programme ci-dessus génère une erreur car x est inclus dans une section published, malgré le fait qu'il n'est pas d'un type pouvant être publié.


program Solve;
  type
    TBaseClass = class
      Fx : Integer;
    published
      property X : Integer read Fx write Fx;
    end;

begin
end.

Pour résoudre ce problème, tous les champs qui ne sont pas des classes des types interface doivent être supprimés de la section published d'une classe. S'il est nécessaire que le champ soit actuellement publié, ceci peut donc être accompli en changeant le champ dans une propriété, comme dans cet exemple.