Dann kannst du es vergessen dir sowas selber zu deklarieren, denn dafür benötigst du eine einzelne Typdeklaration, für den Enum.
type TMySet = set of TMyEnum;
.
Du kannst es auch direkt entfernen und mußt nicht erst prüfen.
Das
-
bei Sets entfernt die Flags bitweise und nicht arithmetisch.
x := y - z;
entspricht eigentlich einem
x := y and not z;
.
Wenn du aber eh nur einzelne Flags entfernen/hinzufügen wollst, dann nutze doch einfach die fertigen Funktionen.
>
Exclude und
Include
DelPrnFlag = Exclude
Delphi-Quellcode:
if Flag in Flags then Flags:= Flags-[Flag];
Flags:= Flags-[Flag]; // prüfen nicht nötig
Exclude(Flags, Flag);