Delphi-Quellcode:
Type
eMsgWhen = ( MSG_AFTER, MSG_BEFORE, MSG_BEFORE_AND_AFTER );
Dabei wird aber die Wertbelegung anders gehandhabt. Das erste Element hat den Ordinalwert von 0, alle weiteren aufsteigend. Ich denke bei diesem Typ würde ein Set besser passen (vergleichbar mit einer Bitmaske):
Delphi-Quellcode:
Type
eMsgWhen = Set Of ( MSG_AFTER, MSG_BEFORE );
Dann hast du die Möglichkeit die Typen zu kombinieren:
Beispiel:
Delphi-Quellcode:
Var
lVar: eMsgWhen;
Begin
lVar := []; // keins
lVar := [MSG_AFTER, MSG_BEFORE]; // beide
lVar := [MSG_AFTER]; // nur einer
End;
Zu dem Hinzufügen und Entfernen kannst du auch die Funktionen Include() und Exclude() nutzen. Abfragen ob ein Element in der Menge ist geschieht mit IN:
Delphi-Quellcode:
If MSG_AFTER In lVar Then
ShowMessage('jo, after');