Einzelnen Beitrag anzeigen

Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: typisierte Konstante definieren: const C: array [...] of TGUID = (...);

  Alt 16. Aug 2012, 11:14
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.
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat