Enumaration в Writeln в D10.3 даёт ошибку, а в FreePascal не даёт

AdamAry
Дата: 10.12.2019 11:29:45
program Enumeration;
type
beverage = (coffee, tea, milk, water, coke, limejuice);

var
drink:beverage;

begin
   writeln('Which drink do you want?');
   drink := limejuice;

   writeln('You can drink ', drink); {[color=red]здесь в D10.3 даёт ошибку, а в FreePascal не даёт, как заставить работать в Delphi 10.3?[/color]}
    readln;
end.

[dcc32 Error] Enumeration.dpr(12): E2054 Illegal type in Write/Writeln statement
ziv-2014
Дата: 10.12.2019 11:44:13
AdamAry,
Привести к integer
alekcvp
Дата: 10.12.2019 15:41:53
AdamAry,

Сделать массив

const 
  BeverageNames: array [Beverage] of string = ('coffee', 'tea', ...);
...
  writeln('You can drink ', BeverageNames[drink]);
X-Cite
Дата: 10.12.2019 15:48:40
writeln('You can drink ', TRttiEnumerationType.GetName<beverage>(drink));
_Vasilisk_
Дата: 10.12.2019 16:06:18
writeln('You can drink ', GetEnumName(TypeInfo(beverage), Ord(drink)));