Each integer holds 8 times as many on/offs as a boolean. You can have an array of them in the same way as you can have an array of booleans if you want many values - the difference being that you have to first figure out which element to grab from the integer array, then figure out the specific bit inside of that number. It's the usual speed/storage trade-off. Something like the following, off the top of my head.

[pascal][background=#FFFFFF][comment=#0000FF][normal=#000000]
[number=#C00000][reserved=#000000][string=#00C000]var
MyArray: array[0..9] of Integer; // 320 bits

function GetBit(WhichBit: Integer): Boolean;
begin
// get whatever bit - e.g. bit number 36, in array
Result := MyArray[whichBit shr 5] and (1 shl (WhichBit and 31)) <> 0;
end;

procedure SetBit(WhichBit: Integer);
begin
MyArray[whichBit shr 5] := MyArray[whichBit shr 5] or (1 shl (WhichBit and 31));
end;

procedure ClearBit(WhichBit: Integer);
begin
MyArray[whichBit shr 5] := MyArray[whichBit shr 5] and not (1 shl (WhichBit and 31));
end;[/pascal]

Meh. Totally untested and I don't suppose you really want stuff like that though. Seriously, use TBits - a class exists for this purpose, so there's no reason to reinvent the wheel.

[EDIT: looks like my code breaks the Pascal tags! BlueCat, you have work to do ]

[BlueCat Edit :twisted: The perfect opportunity to test my new evil colouring tags, heehee. Edit them if ya don't like 'em]

[EDIT 2: I guess it's time to fix the above code ]