Einzelnen Beitrag anzeigen

Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#1

Prüfen ob Integer im Enumeration-Type enthalten ist

  Alt 25. Jan 2015, 14:41
Delphi-Version: XE
Angenommen ich habe folgendes:
type TMeinBeispiel = (mbEins=0, mbZwei=1, mbDrei=5);

Jetzt erhalte ich einen Integer i aus einer externen Quelle (Ini, DB, etc.) und möchte diesen zu TMeinBeispiel casten.
Per MeinBeispiel := TMeinBeispiel(i); funktioniert dies immer. Auch dann, wenn i gar nicht in TMeinBeispiel vorhanden ist. Dann hat MeinBeispiel schlicht den Wert i angenommen (der Debugger sagt "out of bound (i)").

Nun würde ich gerne bei Werten, die nicht in der Aufzählung vorhanden sind, einen Standardwert vorgeben.
Wie kann ich nun aber prüfen, ob ein Wert enthalten ist (0, 1, 5: True; 3, 6: False)? Sowas wie if i in TMeinBeispiel then funktioniert ja leider nicht.

Muss ich den unschönen Umweg über GetEnumName/GetEnumValue gehen oder gibt es eine elegantere Lösung?
  Mit Zitat antworten Zitat