Moin shmia,
Zitat von
shmia:
Die fa-Konstanten dürfen nicht addiert sondern nur mit and,
or oder xor verknüpft werden!
Delphi-Quellcode:
if FindFirst(APath + '*', faAnyFile + faDirectory, sr) = 0 then // Falsch !!!!
if FindFirst(APath + '*', faAnyFile or faDirectory, sr) = 0 then // Richtig !!!
Also das hätte ich jetzt anders kommentiert
Delphi-Quellcode:
if FindFirst(APath + '*', faAnyFile + faDirectory, sr) = 0 then // Ganz falsch !!!!
if FindFirst(APath + '*', faAnyFile or faDirectory, sr) = 0 then // Funktioniert, ist so aber unnötig !!!
Beim ersten "Ganz falsch", weil es keinen Sinn macht "Alles" (faAnyFile) noch mit einem, wie auch immer gearteten, weiteren Attribut zu verknüpfen. Dank der Addition kommt sogar etwas ungültiges für den Attributwert heraus.
Die Begründung für den zweiten Kommentar kann man auch schon aus dem ersten ablesen. Das Bit, dass durch die Veroderung mit faDirectory garantiert gesetzt werden würde ist in faAnyFile schon gesetzt.
Wozu würdest Du denn den Wert mit XOR verknüpfen?
Ich vermute mal stark, dass Du AND NOT meintest, um ein Bit garantiert zu löschen.