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
Das Problem ist, dass man dann aber die betroffenen case-Statements alle manuell raussuchen muss, was nicht ganz so einfach ist, da dort ja nicht der Typ sondern eine Variable des Typs verwendet wird, man kann also nicht einfach ein grep auf den Namen des Typs machen. Wenn der Compiler bei jedem davon einen Fehler schmeißt, ist das einfacher. Kann ja auch gerne abschaltbar sein (wobei man das ja auch mit einem else erreichen könnte).