E2148 Méthode dynamique ou gestionnaire de messages non autorisé ici (Delphi)

De RAD Studio
Aller à : navigation, rechercher

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

Les méthodes dynamic et message ne peuvent pas être utilisées comme fonctions d'accès aux propriétés.



program Produce;

  type
    Base = class
      v : Integer;
      procedure SetV(x : Integer); dynamic;
      function GetV : Integer; message;
      property Velocity : Integer read GetV write v;
      property Value : Integer read v write SetV;
    end;

  procedure Base.SetV(x : Integer);
  begin v := x;
  end;

  function Base.GetV : Integer;
  begin GetV := v;
  end;

begin
end.

Les deux valeurs 'Velocity' et 'Value' ci-dessus sont en erreur puisqu'elles ont toutes les deux des fonctions incorrectes qui leur sont affectées.



program Solve;

  type
    Base = class
      v : Integer;
      procedure SetV(x : Integer);
      function GetV : Integer;
      property Velocity : Integer read GetV write v;
      property Value : Integer read v write SetV;
    end;

  procedure Base.SetV(x : Integer);
  begin v := x;
  end;

  function Base.GetV : Integer;
  begin GetV := v;
  end;

begin
end.

La solution utilisée dans cet exemple a été d'enlever les directives de compilation incriminées des déclarations de procédure ; ce ne sera peut-être la bonne solution pour votre problème. Vous devrez peut-être examiner attentivement la logique de votre programme pour déterminer comment améliorer la fourniture des fonctions d'accès à vos propriétés.