E2209 Felddeklarationen sind im Typ interface nicht erlaubt (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi) - Index

Eine Schnittstelle enthält unzulässigerweise Felddefinitionen.


program Produce;
  type
    IBaseIntf = interface
      FVar : Integer;
      property Value : Integer read FVar write FVar;
    end;

begin
end.

In diesem Beispiel wird versucht, einer Eigenschaft einen Wert zuzuweisen. Das funktioniert aber nicht, weil Schnittstellen keine Felder enthalten dürfen.


program Solve;
    IBaseIntf = interface
      function Reader : Integer;
      procedure Writer(a : Integer);
      property Value : Integer read Reader write Writer;
    end;

begin
end.

Eine elegante Lösung für dieses Problem besteht in der Deklaration von Abruf- und Zuweisungsprozeduren für die Eigenschaft. In diesem Fall muss jede Klasse, welche die Schnittstelle implementiert, eine Methode bereitstellen, die für den Zugriff auf die Daten der Klasse eingesetzt wird.