Messagesのユニットをコピペして強引にConstから列挙型にしたんですが
うまくいきませんでした。
GetEnumNameで文字列を取得しようとしたんですが、
↓みたいになるとエラーになるみたいです。

識別子が一致しないようにWM_ACTIVATE → _WM_ACTIVATE
type TWindowMessages = (
_WM_NULL = $0000,
_WM_CREATE = $0001,
_WM_DESTROY = $0002,
_WM_MOVE = $0003,
_WM_SIZE = $0005, ← 値が飛ぶとTypeInfoでエラー

これってDelphiというかTypeInfoの仕様なんでしょうかね?