You can write it as
If ((b and $01) > 0) or ((b and $08) > 0) or ((b and $80) > 0) then ...
Or you can create an enumeration and use meaningful names for each bit.
type
TMyEnum = (mb0, mb1, mb2, mb3, mb4, mb5, mb6, mb7);
TMyBits = set of TMyEnum; // = Byte in size
function Test: Byte;
var
mbs: TMyBits;
begin
mbs := [mb0, mb3, mb7];
Byte(mbs) := $89; // It's equivalent of mbs := [mb0, mb3, mb7];
if mbs * [mb0, mb3, mb7] <> [] then // If one of bit is set
;//...
if mbs * [mb0, mb3, mb7] = [mb0, mb3, mb7] then // If all 3 bits are set
;//...
if mbs - [mb0, mb3, mb7] = [] then // If no other bits are set
;//...
Include(mbs, mb1); // Set 2nd bit
mbs := mbs - [mb3, mb7]; // Unset 4th and 8th bit
//etc...
Result := Byte(mbs);
end;
It's always better to deal with clearly named typed variables and constants.