Es gibt auch die Klasse
TBits, ich kann aber nicht sagen wie performant die ist.
Kannst ja mal im Quellcode stöbern.
Jedenfalls erleichtert die den Umgang mit Bits ein wenig.
Ich würde mir aber auch einen record zusammenbauen, wo dann die zu erwartenden Felder direkt drinstehen,
und diesen entsprechend befüllen.
Das Bitschieben einer 1 müsste ungefähr so gehen:
LVal := LVal + ($01 shl LPos ); // LPos 0, ... 7 für ein Byte