Mam sobie coś takiego:
WIN_ID = (
WID_Base = $2000,
WID_DeskTop,
WID_OtherFuc,
WID_DeskTopAni,
WID_PowerOffWin,
WID_DeskLittle1,
WID_DeskLittle2,
...
WID_HoldOnFile3);
I chcę dobrać się do nazw tych składników tak by móc operować na nich w postaci String
W internecie jest niby pełno informacji o tym jak to zrobić, to sposób który znalazłem:
MyString := GetEnumName(TypeInfo(WIN_ID), WID_DeskTop);
Jednak problem w tym że to działa tylko w wypadku gdy żaden z elementów powyższych definicji nie ma przypisanej wartości. Gdy jakikolwiek składnik ma zdefiniowaną wartość, kod się nie chcę kompilować i dostaje komunikat od funkcji TypeInfo: "Type 'WIN_ID' has no type info".
Ale jak widzicie, pierwszy składnik ma wartość 0x2000, i dalej po kolei też niektóre elementy mają przypisane swoje wartości. Te wartości muszą być przypisane, gdyż ten typ danych potrzebny mi jest do deasemblacji pliku binarnego Firmware mp4 - taki jest cel mojego programu.
Więc jaki jest inny sposób na wyciągnięcie tych nazw, lub może zmodyfikowanie funkcji TypeInfo tak by nie wyskakiwała z tym głupim błędem?
Pomocy.