Contributor: HOVIK A. MELIKIAN
{
Delphi Compenent Library gives a good lesson of how to do this in Turbo
Pascal, and I think it's the best way.
Let us have flags:
}
type
  TFlagValues = (flagUse, flagSets, flagInsteadOf, flagBitOperations);
Then we declare a set:
type
  TFlags = set of TFlagValues;
Variables of this type will occupy only one byte. Now, common operations:
  Flags := [];                   { clear all flags }
  Flags := Flags + flagXXX;      { set this flag to 1 }
  Include(Flags, flagXXX);       { same in TP 7.0 and Delphi, more efficient }
  Flags := Flags - flagXXX;      { clear this flag }
  Exclude(Flags, flagXXX);       { same in TP 7.0 and Delphi, more efficient }
  if flagXXX in Flags then ...   { test }
This generates same code as with bit operations and read easier.