Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
4.087 Beiträge
 
Delphi 12 Athens
 
#15

AW: Case-Anweisung - Zwingen alle Elemente des Typen auszuprogrammieren

  Alt Gestern, 18:19
Hätte es halt gerne direkt beim kompilieren.
Hallo,
ich möchte bei einer Case-Anweisung einen Compiler-Fehler bekommen ....
Genau, beim Compilieren kommt der Fehler mit so einer Lösung
CEnum : array[ TEnum ] of String = ( 't1', 't2', 't3' ); //Knallt schon hier, wenn es nicht übereinstimmt Dass man das jetzt erweitern muss, ist ja genau Sinn des Crashes.
Nebenbei hätte so eine noch weitere Vorteile, also zum Beispiel Textausgabe, Rückgabe beliebiger Werte, etc.

Eventuell sucht Du ja sowas, etwas "Verboseres":

Delphi-Quellcode:
type
  TMyEnum = (Value0, Value1, Value2);

const
  ExpectedEnumSize = 3; // Erwartete Anzahl der Elemente in TMyEnum

{$IF     Ord(High(TMyEnum)) > (ExpectedEnumSize-1) }
  {$MESSAGE ERROR 'TMyEnum wurde erweitert!'       }
{$ELSEIF Ord(High(TMyEnum)) < (ExpectedEnumSize-1) }
  {$MESSAGE ERROR 'TMyEnum wurde verkleinert!'     }
{$IFEND}
  Mit Zitat antworten Zitat