Zitat von
himitsu:
also geht ich wohl doch erstmal wieder zu der "guten" alten Typ-Konstante-Variante über
Das dürfte wohl am einfachsten und flexibelsten sein
Ich würde es persönlich anders schreiben, um die Konstanten im Quelltext zu "dokumentieren":
Delphi-Quellcode:
type
PLockType = ^TLockType;
TLockType = type LongInt; // TEnumInt
const
LOCK_WRITE = TLockType(1);
LOCK_EXCLUSIVE = TLockType(2);
LOCK_ONLYONCE = TLockType(4);
Man _könnte_ ein Set TLockTypes deklarieren (für TStatStg.grfLocksSupported)... doch
1) würde man dann LOCK_Xxx nicht mehr definieren, damit der nutzende Entwickler nicht verwirrt wird (durch andere Ordinalwerte) und gar nicht erst auf die Idee kommt LOCK_Xxx im Sinne von Bitmasken zu verwenden,
2) müsste man alle Funktionen die _einen_ Locktyp erwarten dennoch mit einem Set-Parameter definieren (da es LOCK_Xxx nicht mehr gibt) - was den nutzenden Entwickler noch mehr verwirrt, weil er laut Deklaration davon ausgehen muss, dass man 'mehrere' Locktypen übergeben kann (was nicht der Fall ist).
Kurz, lass es bei den Konstanten