E2209 Felddeklarationen sind im Typ interface nicht erlaubt (Delphi)
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.