Thema: Delphi TSearchRec

Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: TSearchRec

  Alt 17. Mär 2008, 12:28
TSearchRec.Attr ist ein Integer wo jedes Bit für ein bestimmtes Attribut steht. Selbst wenn du ohne Bitmaske arbeitest brauchst du nicht alle möglichen Kombinationen. Dazu müsstest du einfach mit der Prüfung des größten Attributes beginnen und wenn TSearchRec.Attr größer ist als das Attribut ziehst du von dem Wert den Wert des Attributes ab:
Delphi-Quellcode:
var
  myattribs: Integer;
begin
  myattribs := TSearchRec.Attr;
  if (myAttribs >= 64) then
  begin
    myAttribs := myAttribs - 64;
    attribut1 := True;
  end;
Das wäre aber immer noch eine ganz schlechte lösung weil eben das prüfen der einzelnen Bits bedeutend eleganter ist.

Delphi-Quellcode:
function is_bit_set(bit_index: Integer);
begin
  result := ((bit_index and (1 shl bit_index)) <> 0);
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat