RAD Studio (Common)
ContentsIndex
PreviousUpNext
E2054: Illegal type in Write/Writeln statement (Delphi)

This error occurs when you try to output a type in a Write or Writeln statement that is not legal.

program Produce;
type
  TColor = (red,green,blue);
var
  Color : TColor;
begin
  Writeln(Color);
end.

It would have been convenient to use a writeln statement to output Color, wouldn't it?

program Solve;
type
  TColor = (red,green,blue);
var
  Color : TColor;
const
  ColorString : array [TColor] of string = ('red', 'green', 'blue');
begin
  Writeln(ColorString[Color]);
end.

Unfortunately, that is not legal, and we have to do it with an auxiliary table.

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!