Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
27. Jan 2015
Das SET nutzt Befehle der CPU und dort gibt es nur ein Byte als Index ... darum auch nur 0 bis 255.
Darum funktioniert das SET für WideChar nicht mehr. :cry:
Der ENUM kann mindestens einen Integer als Speicher nutzen (also bis 32 Bit ... ob 64 Bit auch geht, weiß ich grade nicht auswendig)
SET: 0 <= x < 2^8 (maximal 32 Byte adressierbar)
ENUM: 0 <= x < 2^32 (vielleicht auch 64, aber ich...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
27. Jan 2015
Statt der Funktion hatte ich mir, die ein/zwei Mal, wo ich sowas brauchte, eine Konstante direkt bei dem Typen deklariert.
Ist bei Änderungen auffälliger, als die Funktion außerhalb des Blickfeldes.
type
TMyEnum = (a, b, c, z=25);
const
cMyEnumRange = ; //cMyEnumRange: set of TMyEnum = ;
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
25. Jan 2015
:roll:
"hatte" ... hatte "hab" gelesen. :oops:
Aber zusätzlich hast du so eben einen Code, wo man alle gültigen "Namen" auslesen kann und auch eine Liste (Array) mit allen gültigen Werten hat.
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
25. Jan 2015
Es werden aber nicht die Zahlen gespeichert, sondern die Namen, in einem indizierten Array. (Index = Zahl :stupid:)
Als Zahl ist alles im Wertebereich des Speichertyps gültig.
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
25. Jan 2015
Wie gesagt, ohne Typ-Info bleibt nur noch die Speichergröße.
Und die Typinfo fehlt, weil man zu blöd ist und es nicht schafft "fehlende" Werte in die Namensliste aufzunehmen. :roll:
Jupp, statt nur zwischem dem Record und Integer zu casten, kann man auch noch den Enum mit in die Casts aufnemen und zusätzlich vielleicht noch Getter-, Setter- und Übersetzngsmethoden implementieren.