program PrintElementInSet;
type
TColor = (Red, Green, Blue, Yellow);
TColorSet = set of TColor;
procedure PrintColorSet(const ASet: TColorSet);
const
ColorNames: array[TColor] of String = ('Red', 'Green', 'Blue', 'Yellow');
var
color: TColor;
FirstElement: Boolean;
begin
Write('[');
FirstElement := True;
for color := Low(TColor) to High(TColor) do
begin
if color in ASet then
begin
if not FirstElement then
Write(', ');
Write(ColorNames[color]);
FirstElement := False;
end;
end;
Writeln(']');
end;
var
MyColors: TColorSet;
begin
MyColors := [Red, Green];
PrintColorSet(MyColors);
MyColors := [Green, Blue, Red];
PrintColorSet(MyColors);
MyColors := []; // Empty set
PrintColorSet(MyColors);
end.
(*
run:
[Red, Green]
[Red, Green, Blue]
[]
*)