![]() |
Integer in Enumeration umwandeln
Wie kann ich den Index einer Enumeration in eine Enumeration und wieder zurück umwandeln?
Delphi-Quellcode:
Bei 0 sollte er in Enum "eFirst" stehen haben und so weiter.
TEnum = (eFirst, eSecond, eThird);
Enum : TEnum; |
Re: Integer in Enumeration umwandeln
Delphi-Quellcode:
type TEnum = (rot, gruen, blau);
var Enum: TEnum; iIndex: integer; begin Enum := TEnum(2); case Enum of rot: ShowMessage('rot'); gruen: ShowMessage('grün'); blau: ShowMessage('blau'); end; iIndex := integer(TEnum(Enum)); ShowMessage(inttostr(iIndex)); end; |
Re: Integer in Enumeration umwandeln
Und wenn ich jetzt ein Integer habe: Wie kriege ich den in die Numeration?
|
Re: Integer in Enumeration umwandeln
Nach emum casten?
enumvar = TEnum(intvar); ;) |
Re: Integer in Enumeration umwandeln
Umwandlung Enum->Integer:
Delphi-Quellcode:
Umwandlung Integer->Enum:
var
idx : integer; begin idx := ord(eSecond); end;
Delphi-Quellcode:
var
enum : TEnum; idx : integer; begin idx := 2; Enum := TEnum(idx); end; |
Re: Integer in Enumeration umwandeln
Naja, bis auf die Verwendung von Ord hatte ich das doch in meinem Beispiel. War das so missverständlich? :gruebel:
|
Re: Integer in Enumeration umwandeln
Nein...hab das doch lediglich mal Zusammengefasst...so für den "Auf-Einen-Blick"-Gucker :)
Und ord ist hier die effizientere Methode, da der Cast wegfällt. Funktionieren sollten beide Varianten :) |
Re: Integer in Enumeration umwandeln
Zitat:
|
Re: Integer in Enumeration umwandeln
|
Re: Integer in Enumeration umwandeln
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz