Dieses Set
[Low(TTeilmengeA)..High(TTeilmengeA)]
wird schon im Compiler erstellt, als implizite Konstante und dann wird darauf nur noch eine einzige Abfrage darauf ausgeführt.
Gut, in den x86-CPUs soll dieser eine
BTC-Befehl nicht unbedingt der aller Schnellste sein, aber egal. (vom Code her ist das doch übersichtlicher? )
Beim CASE sind das mehrere Assemblerbefehle für die beiden Vergleiche und Delphi optimiert ein CASE sogar zu mehreren mathematischen Opperationen (meist 'ne Subtraktion) und einfachen Vergleichen mit 0.