Zitat von
bernau:
Das Set selber kann 256 verschiedene Elemente beinhalten. In diesem Fall sind es 26+26+10 = 62. Das sind weniger als 256.
Das ist zwar richtig, für das 'SET' aber irrelevant. Bei einer Menge ist nicht die Anzahl der Elemente limitiert, sondern die höchste Ordnungszahl eines Elementes.
Ein 'SET' (Menge) wird intern als 32 Byte langer Bitvektor abgebildet, das entspricht einem 'Packed Array [0..255] Of Boolean'. Daraus folgt nun, das die Elemente einer Menge nur aus einem ordinalen Typ bestehen kann, der
1. maximal 256 verschiedene Werte annehmen kann und
2. dessen höchster Ordinalwert (also Ord(High(TType))) kleiner als 256 sein muss.
Ein "Char" ist somit der größte Datentyp, bei dem man mit Mengen arbeiten kann ("Byte" ist äquivalent)
Es kann sein, das Delphi 2009 dies für 'Set Of Char'-Ausdrücke anders implementiert.