[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]
{
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.
[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]