Liegt das "nur" am Daten-Typ oder wurde es einfach nicht im Compiler implementiert? Ich hatte mal einen PreCompiler (ich glaube es war
IDE Fix Pack oder so ähnlich) mit dem man u. a. Strings in Case verwenden konnte. Das war vor über 10 Jahren... Warum baut Embarcadero sowas nicht mal ein? Floats, Strings, etc. Ich finde das wäre ein tolles Feature...
Das liegt daran, dass ein case nur für Ordinalwerte implementiert wurde und der Compiler eine Jumptable baut - in den Sprachen, die switch case auf mehr als das können, wird dann vom Compiler meist ähnlicher Code erzeugt, wie bei verschachtelten if-then-else Ausdrücken.
Leider ist es bei Delphi wie so oft ein
schon lange gewünschtes, aber bisher nicht implementiertes Feature.