Das Problem sind die fehlenden Klammern
Bei was?
Wenn hier
if (Rec.Attr and faDirectory = faDirectory)
:
AND wir immer vor = aufgelöst, also passt es.
Da aber alle Dateiattribute nur aus einem Bit bestehen, kann man das noch kürzen
if (Rec.Attr and faDirectory <> 0)
Das mit dem IN klappt nicht, da Attr ein Integer und kein Set ist, außerdem sind die fa-Konstanten Bit-Masken und keine Indize.
(gut, man könnte den Integer in ein
set of 0..31
, aber dann ist noch das Problem mit den Konstanten, also wenn dann lieber direkt in ein TAttributeSet casten und als Property in TSearchRec rein)