Bezüglich des ENUMs:
In Delphi sind die standardmäßig so klein wie möglich (hier also Byte), aber in C++ sind ENUMs/SETs oft immer INTEGER.
Also entweder den Typ als Integer/LongInt definieren und die Werte als Konstanten,
oder
{$MINENUMSIZE 4}
um diese Typ-Definition. (beim SET mit einem DummyWert =31)
Bei Enums mit Vorgaben (
=irgendwas
) könnte man noch bedenken, dass dort leider keine TypeInfo für die Werte generiert werden.
Das könnte man mit Dummy-/Füllwerten für die Nichtdefinierten 0 bis 2 und ohne die Zuweisung =3 beheben, falls man
GetEnumName verwenden will/muss.