Niet getest maar werkt dit wel?
Delphi Code:
type
TPrivateAccessBits = class
public
FSize: Integer;
FBits: Pointer;
end;
//...
var
Tb: TBits;
Value: UInt32;
begin
Value := 123456;
Tb := TBits.Create;
Tb.Size := SizeOf(Value);
Move(Value, TPrivateAccessBits(Tb).FBits^, SizeOf(Value));
Anders is de enige mogelijkheid inderdaad bit voor bit te zetten.
TBits.FBit is een pointer naar memory waar de bits opgeslagen zijn. En ze zijn als Bytes opgeslagen dus dit doet een Move van UInt32 over de FBit heen.
Je moet zelf even testen of de TBits.Bits array hierna inderdaad goed gevuld is.
Bookmarks