Ein Schnittstellentyp ein Typ, und damit keine Instanz. Ich hätte gern die Schnittstellentypen ähnlich herumgereicht, wie das bei Klassentypen geht (bspw. so:
TFormatSchnittstelle = interface of IFormat;
Formate: array [TFormat] of TFormatSchnittstelle = (IEins, IZwei);
). Leider scheint es, dass es einen solchen Typ nicht gibt. In diesem Fall hier zählt letztendlich, dass die Schnittstellenidentifikation, die
GUID, verfügbar ist, die man
Supports
übergeben kann:
Supports(Daten, Formate[F], Format)
. Aber auch dafür scheint es keinen Typ zu geben, den man in einer Konstantendefinition verwenden könnte. Für eine Variable gibt es einen solchen Typ:
Delphi-Quellcode:
type
TFormate = array [TFormat] of TGUID;
const
Konstante: TFormate = (IEins, IZwei); {3}
var
Variable: TFormate; { funktioniert }
begin
Variable[ftEins] := IEins;
Variable[ftZwei] := IZwei;
end;
{3} [DCC Fehler]: E2010 Inkompatible Typen: 'TGUID' und 'AnsiString' (wie im ersten Beitrag)
Ich hätte gern eine Konstante, damit der Kompiler darauf hinweist, dass die Zuordnung anpasst werden muss, wenn sich die Anzahl der Formate ändert.