Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как получить строковое значение перечисляемого типа?

01.01.2007
procedure GetEnumNameList(Pti: PTypeInfo; AList: 
                               TStrings; X: Integer);
{(**********************************************************
 Will return in AList string version of an 
enumerated type less the first X characters .
 eg X = 4
 and
          type
            eXORBuySell = (
              XOR_BUY,
              XOR_SELL
            );
 
 GetEnumNameList(TypeInfo(eXORBuySell), ComboBox1.Items, 4);
 
 Now  ComboBox1.Items[0] = 'BUY'
 and  ComboBox1.Items[1] = 'SELL'
************************************************************)}
var
  I: Integer;
begin
  AList.Clear;
  with GetTypeData(pti)^ do
  for I := MinValue to MaxValue do
    AList.Add(Copy(GetEnumName(pti, I), X + 1, 255));
end;

Взято с сайта https://www.torry.net