E2148 Dynamische oder Botschaftsmethoden sind hier nicht erlaubt (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Dynamische und Botschaftenmethoden können nicht als Zugriffsfunktionen für Eigenschaften benutzt werden.


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.

Sowohl Velocity als auch Value in diesem Beispiel sind fehlerhaft, da beiden Eigenschaften unzulässige Zugriffsfunktionen zugewiesen wurden.


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.

Als Lösung wurden in diesem Beispiel die betreffenden Compileranweisungen aus den Deklarationen der Prozeduren entfernt; dies könnte allerdings in Ihrem speziellen Fall nicht von Nutzen sein. Eventuell müssen Sie die Logik Ihres Programms einer genauen Untersuchung unterziehen, um festzustellen, auf welche Weise Sie am besten Zugriffsfunktionen für die Eigenschaften zur Verfügung stellen können.