Hi!
There is another feature (or bug?) about strings as case labels should be mentioned.
If you use a range of strings the labels are only treated as leading substrings.
Example:
// working on function keys
case idx of
'F1'..'F9' : .....
'F10'..'F12' : ..... // <-- compiler error
end;
The compiler moans in the second line of case labels: "Error: duplicate case label"
This means that in the label 'F1' the labels 'F10'..'F12' are contained.
If you know that, it is useful for some reasons like working with dictionaries.
But in the above example you have to do
case idx of
'F1', 'F2'..'F9' : .....
'F10'..'F12' : ..... // <-- no compiler error
end;
Here the F1 is not in a range but a single value and will not be expanded.
Btw: Good to know is the strange policy from M$ about function keys F13..F24:
In Windows 7 (and Apple) pressing Shift F1..F12 leds to the result F13..F24
In Windows 8 F20..F24 are disabled
In Windows 10 F13..F24 are disabled
Happy coding
Winni