AUFPASSEN, die $00000001 sind BitMasken,
keine BitIndize.
Die Nächsten sind doch ganz bestimmt $00000002, $00000004, $00000008 und $00000010,
anstatt
$00000002,
$00000003,
$00000004 und
$00000005.
In C können hier auch mehrere Bits pro Wert/Name gesetzt sein, z.B. $00100010.
Und nach Möglichkeit besser niemals den Namen einen Wert zuweisen.
Wenn es fortlaufen ist, dann einfach nur
Delphi-Quellcode:
type
tagcharactTypeET =
(
chBlaEC,
chBlubEC,
...
);
Sonst fehlt in der
RTTI die Namensliste und man bekommt bei Nutzung der TypeInfo/
RTTI Probleme, z.B. wenn man Speicherwert in Namen konvertieren lassen will.
Außerdem sind ENUMs in Delphi möglichst Klein, also bei weniger als 256 Werten, ist der ENUM bloß 1 Byte groß, obwohl der Typ als DWORD (TOleEnum = Cardinal) deklariert ist, also in C standardmäßig 4 Byte.
Bezüglich ENUMs kann man hier mit
{$MinEnumSize 4}
arbeiten,
aber bei SETs, weigert sich Borland/Embarcadero seit Jahren dort auch sowas einzuführen.