Einzelnen Beitrag anzeigen

Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Größe von SETs festlegen

  Alt 6. Mai 2008, 09:11
Dein gewünschtes Feature gibt es in Delphi nicht (in FPC {$PACKSET x}).
Du kannst die entsprechende Aufzählung um Dummies erweitern, oder das größtmögliche Aufzählungsmitglied (31) als einzigen Dummy definieren (für nicht fortlaufende oder nicht mit 0 beginnende Aufzählungen wird allerdings keine RTTI-Information erzeugt!).

ps: siehe http://www.delphipraxis.net/internal...=882557#882557

pps:
Zitat von himitsu:
und dises geht auch, aber es sieht irgendwie blöd aus
Delphi-Quellcode:
type
  LOCKTYPE = Set (
    LOCK_WRITE = 1;
    LOCK_EXCLUSIVE = 2;
    LOCK_ONLYONCE = 4;
    _locktype_align = 31);
Das ist nicht korrekt, es müsste so aussehen:
Delphi-Quellcode:
type
  PLockType = ^TLockType;
  TLockType = set of (
    LockTypeWrite, // (Bit) 0
    LockTypeExclusive, // (Bit) 1
    LockTypeOnlyOnce, // (Bit) 2
    LockTypeForceDWORD = 31
  );
const
  LOCK_WRITE = DWORD(1 shl DWORD(LockTypeWrite));
  LOCK_EXCLUSIVE = DWORD(1 shl DWORD(LockTypeExclusive));
  LOCK_ONLYONCE = DWORD(1 shl DWORD(LockTypeOnlyOnce));
Die Ordinalwerte von LockTypeXxx und LOCK_Xxx sind unterschiedlich! (bis aufs erste
  Mit Zitat antworten Zitat