Moin Steppo,
nein, mit OR werden die Werte binär verknüpft, bei + addiert.
z.B.
Angenommen, Du hast 4 Konstanten. Drei mit Einzelwerten, die kombiniert werden dürfen, und eine, die die ersten beiden Konstanten schon kombiniert, da diese häufig zusammen verwendet werden.
K1 = 1
K2 = 2
K3 = 4
K4 = 3 (Kombinationskonstante)
Jetzt nimmst Du, versehentlich K1, K2 und K4.
Du willst K1 und K2 Kombinieren, hast aber nicht bedacht, oder weisst es nicht, dass K4 das schon erledigen würde
Bei OR wird der Funktion dann der Wert
1 OR 2 OR 3 = 3 übergeben. Alles gut.
Bei + wird dann aber
1 + 2 + 3 = 6 übergeben. Das entspräche dann K2 OR K3. Was auch immer das bedeutet, es war nicht beabsichtigt.
Eine Funktion kann eine so übergebene Funktion dann so auswerten (und wird es auch so oder ähnlich tun):
Delphi-Quellcode:
if (Flags and K1) = K1 then // Berücksichtige Einstellung K1
if (Flags and K2) = K2 then // Berücksichtige Einstellung K2
// usw.
Es werden also beide übergebenen Möglichkeiten erkannt.
Bei einer Addition wäre das nicht gezielt zu zerlegen.