Delphi-Quellcode:
type
TType = (TT1, TT2, TT3, TT4, TT5, TT6, TT7);
TTypeNormal = (TT1, TT2, TT3, TT4, TT5, TT6); // Teilmenge von TType
TTypeSpezial = (TT5, TT6, TT7); // Teilmenge von TType
Sowas geht ohne $SCOPEDENUMS garnicht -> Doppelte Bezeichner.
Denn
so definiert sind das keine Teilmengen, sondern eigenständige Enums
und dort ist TTypeSpezial.TT6=1, TTypeNormal.TT6=5 und TType.TT6=5.
Ach ja, auch wenn du das in den Parametertypen begrenzt, dann betrifft dfas nur die direkte Übergabe, aber bei Übergabe in einer Vaiable, wird das nicht geprüft,
was du dann notfalls selber zur Laufzeit nochmal prüfen müsstest.