Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#3

AW: Bitpacked Record

  Alt 3. Sep 2014, 12:24
Jupp, Delphi kann nur Byteweise programmiert werden.
Selbst der Boolean ist ein Byte groß (1x False und 255x True)

Aber über Record-Property kannst du das selber lösen.

Delphi-Quellcode:
type
  TMyRec = record
  private
    function GetBit0: Boolean;
    function GetBool(Index: Integer): Boolean;
    procedure SetBool(Index: Integer; Value: Boolean);
    function GetByte(Index: Integer): Byte;
    procedure SetByte(Index: Integer; Value: Byte);
  public
    FFields: LongWord;
    property Bit0: Boolean read GetBit0 write GetBit0;
    property Bit1: Boolean index 1 read GetBool write SetBool;
    property Bit2: Boolean index 2 read GetBool write SetBool;
    property Bit3bis4: Byte index 0302 read GetByte write SetByte; // 2 lang, ab der 3
  end;
Und dann in den Gettern/Settern die gewünschten Bits rausholen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 3. Sep 2014 um 12:26 Uhr)
  Mit Zitat antworten Zitat