TDataSet = set of (tdHouse, tdCar);
Du hast eine Definition für einen ENUM (eine Liste mit verschiedenen Namen/Werten), aber ein ENUM kann immer nur einen dieser Werte speichern.
Und du hast eine Definition für ein SET, dass mehrere ENUMS speichern kann.
Es ist zwar auch möglich ENUM und SET zusammen zu definieren, aber es ist so nicht möglich eine Variable für nur einen ENUM zu deklarieren, da DU nicht an den eingebetteten ENUM-Typen ran kommst.
PS:
TDataSet
[EDIT]
Jetzt hab ich's auch falsch verstanden.
aDataSet := TDataSet(-1);
hier sind nun
alle deine ENUMs gesetzt und auch der freie Speicher, da das SET ja auf die Größe des nächstgrößeren Datentypen für die Speicherung "aufgerundet" wurde (Byte, Word, LongWord oder UInt64).