Announcement

Collapse
No announcement yet.

Typumwandlung - Set als numerischen Wert speichern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Typumwandlung - Set als numerischen Wert speichern

    Hallo Forum,

    ich möchte eine Menge als numerischen Wert in meiner DB speichern:

    <pre>
    TSEDPItemState = (
    dpsActive,
    dpsReadOnly,
    dpsInternal,
    dpsInvers
    );
    TSEDPItemStates = set of TSEDPItemState;

    ...

    procedure TForm1.Button3Click(Sender: TObject);
    var
    DPStates: TSEDPItemStates;
    iTest: Integer;
    begin
    DPStates := [dpsActive, dpsInvers];
    iTest := Word(DPStates);
    ShowMessage(IntToStr(iTest));
    end;
    </pre>

    Bei der Umwandlung <pre>wTest := Word(DPStates);</pre> meckert der Compiler, dies sei eine ungültige Typumwandlung. Ich habe aber ein Code-Beispiel gefunden, wo das genauso gemacht wird. Da funktionierts. Was mache ich da falsch? Muss ich einen Compilerschalter aktivieren oder deaktivieren?

    Gruß
    Martin

  • #2
    Hallo Forum,

    wie immer steckt der Teufel im Detail und wie immer hab ich's doch noch selbst heraus gefunden. Je nach Anzahl der Einträge muss die Umwandlung mit dem entsprechenden Typ erfolgen:
    <pre>
    bis 8 Einträge -> Byte(...)
    bis 16 Einträge -> Word(...)
    bis 32 Einträge -> Cardinal(...)
    </pre>
    Gruß
    Marti

    Comment

    Working...
    X