ach Leute, es wurde gleich am Anfang schon eine supi Variante gepostet, diese leicht abgeändert und man kann eigentlich jeden Typ übergeben (bzw. einen Pointer darauf)
Delphi-Quellcode:
function IsSet(pIntToCheck: PInteger; Bit: Integer): Boolean;
begin
Result := pIntToCheck^ and (1 shl Bit) <> 0;
end;
Und niemand hindert einen dann daran einen anderen Pointer zu übergeben. So kann man sich zum beispiel ausgeben lassen ob das 0te Bit eine Charakters gesetzt ist ohne erst zu casten weil es eben auch als Pointer übergeben wird.
Delphi-Quellcode:
var lMeinString: String;
begin
lMeinString := 'abcde';
ShowMessage(BoolToStr(IsSet(@lMeinString[2], 0), True));
end;