Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: BitmaskToByte -> ByteToBitmask

  Alt 6. Mai 2008, 08:06
in die erste Richtung würde ich es so machen:
Delphi-Quellcode:
function BitmaskToByte(AValue:TBitmask):byte;
var i:integer;
begin
  result := 0; // Rückgabewert auf 0 setzten. WICHTIG. Weglassen dieser Zeile kann zu faulen Ergebnisen führen.
  for i := 0 to 7 do
    if avalue.bits[i] then //Wenn dieser Wert der Bitmaske auf "1" steht, muss das Ergebnis um
      result := result or (1 shl i); //2 hoch der Position in der Bitmaske incrementiert werden.
end;
in die andere Richtung wäre es dann so:

Delphi-Quellcode:
function ByteToBitmask(AValue:Byte):TBitmask;
var i: Integer;
begin
  for i := 0 to 7 do
    result.bits[i] := AValue and (1 shl i) <> 0;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat