Mit neueren Delphi Versionen lässt sich dein Code auf jeden Fall kompilieren (in der
OH steht auch was von
unsigned). Handelt es sicher hierbei evtl. um eine Limitierung deiner 2007er Version? Oder verwendest du das Enum zufällig irgendwo in einem Set?
Edit:
Ansonsten musst du dir halt eine Übergangsfunktion der Form
function TranslateValue(OrdinalValue: Cardinal): EMsgSig
deklarieren (und
EMsgSig
dann einfach von 0..N statt mit festen Werten). Müsstest du dann in der entsprechenden Funktion aber drauf achten, dass auch alle Werte korrekt übersetzt werden können.